我有这个网址:
我想要这个:
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);
作为提醒,我仍然会收到旧网址。这段代码出了什么问题? 感谢。
答案 0 :(得分:5)
如果你想打印\
,你必须用另一个反斜杠来逃避它。
function addslashes(str) {
return str.replace(/\//g, '\\/');
}
此外,如果您希望replace
函数替换所有匹配项,则必须使用带有g
修饰符而不是字符串的正则表达式。如果你传递一个字符串,它将只替换第一个匹配然后结束但是使用修饰符它将找到所有匹配。
答案 1 :(得分:1)
尝试此代码fiddle:
function addslashes(str) {
return str.replace(/\//g, '\\/');
}
你需要添加g以将其设置为全局,替换所有'/'并在替换字符串中添加'\'。
答案 2 :(得分:1)
你必须添加一个附加反斜杠才能正确地逃避它。
使用replace
,您只能替换第一场比赛。您也可以使用正则表达式,如您在其他帖子上看到的那样。但您也可以使用简单的split
和join
函数
function addslashes(url) {
url.split('/').join('\\/');
}
<强> Demo 强>