将'/'替换为字符串中的'\ /'

时间:2016-04-07 13:08:42

标签: javascript

我正在尝试将字符串变量'foo / bar'更改为'foo \/ bar',但我不断获得'foo \\/ bar'。我不想硬编码。怎么做?

> fb = 'foo / bar'
'foo / bar'
> fb.replace('/', '\\/')
'foo \\/ bar'
> fb.substr(0, fb.indexOf('/')) + '\\' + fb.substr(fb.indexOf('/'))
'foo \\/ bar'

1 个答案:

答案 0 :(得分:1)

您的replacefb.replace('/', '\\/'))是正确的(如果您只想替换第一个)。只是你正在使用的任何控制台以字符串文字格式显示字符串,并且在字符串文字中,要在字符串中实际拥有\,你必须将其转义(与另一个\)。您替换的字符串实际上只有一个\,它只是控制台向您展示的方式。

无端的例子:



var fb = 'foo / bar';
fb = fb.replace('/', '\\/');
var pre = document.createElement('pre');
pre.appendChild(
  document.createTextNode(fb)
);
document.body.appendChild(pre);




如果您要替换字符串中的所有 /(如果有多个):

var fb = "foo / bar";
fb = fb.replace(/\//g, "\\/");