如何全局替换 JavaScript 字符串中的正斜杠?

IT技术 javascript
2021-02-17 01:11:25

如何全局替换 JavaScript 字符串中的正斜杠?

6个回答

以下会做,但只会替换一次出现:

"string".replace('/', 'ForwardSlash');

对于全局替换,或者如果您更喜欢正则表达式,您只需转义斜杠:

"string".replace(/\//g, 'ForwardSlash');
第一个片段不进行全局替换。不太确定如何以非正则表达式的方式进行全局替换。
2021-04-17 01:11:25
"string".replace(/\//g, 'ForwardSlash'); 有效但从中删除 /g 并且它不起作用。
2021-04-29 01:11:25
@johntrepreneur g 表示它是一个全局替换,即它替换匹配的/. 没有 g 它只替换一个实例。如果你删除/g你会完全破坏正则表达式,因为最后一个 / 是结束分隔符。
2021-05-12 01:11:25
啊对了,我只是用斜线试了一下。它可以完成,"string".replace('/', 'ForwardSlash', 'g')但这是非标准的论点,仅适用于 Firefox afaik。
2021-05-13 01:11:25
@RameshRajendran 这就是 API 的方式。默认情况下,它只替换一次,然后在找到要替换的对象时停止。另见developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
2021-05-14 01:11:25

使用带有g修饰符的正则表达式文字,并用反斜杠转义正斜杠,这样它就不会与分隔符发生冲突。

var str = 'some // slashes', replacement = '';
var replaced = str.replace(/\//g, replacement);

不使用正则表达式(虽然我只会在搜索字符串是用户输入的情况下这样做):

var str = 'Hello/ world/ this has two slashes!';
alert(str.split('/').join(',')); // alerts 'Hello, world, this has two slashes!' 

您需要包装正斜杠以避免跨浏览器问题或//注释掉。

str = 'this/that and/if';

var newstr = str.replace(/[/]/g, 'ForwardSlash');

这是你想要的吗?

'string with / in it'.replace(/\//g, '\\');