Javascript replace()方法不起作用

jas*_*son 0 javascript

我有这个网址:

http://example.com/example/sample/example.jpg

我想要这个:

http:\ /\/example.com\/ example\/ sample\/example.jpg

I wrote this code : 
function addslashes(str) {
  return str.replace('/', '\/');
}

var url = http://example.com/example/sample/example.jpg
var t = addslashes(url);
alert(t);
Run Code Online (Sandbox Code Playgroud)

作为提醒,我仍然可以获得旧网址.这段代码出了什么问题?谢谢.

Ke *_*Vin 5

如果你想要打印,\你必须用另一个反斜杠来逃避它.

function addslashes(str) {
  return str.replace(/\//g, '\\/');
}
Run Code Online (Sandbox Code Playgroud)

此外,如果希望replace函数替换所有匹配项,则必须使用g修饰符而不是字符串传递正则表达式.如果你传递一个字符串,它将只替换第一个匹配然后结束但是使用修饰符它将找到所有匹配.

  • 你还需要正则表达式`/\// g`来匹配所有斜杠,而不仅仅是第一个斜杠. (3认同)