Javascript - 替换字符串文字中的转义字符

dba*_*sch 14 javascript string replace escaping literals

我试图替换Javascript字符串文字中的反斜杠(转义)字符.

我需要用双反斜杠替换它,以便我可以进行重定向:

var newpath = 'file:///C:\funstuff\buildtools\viewer.html'.replace(/\\/g,"\\");
window.location = newpath;
Run Code Online (Sandbox Code Playgroud)

但是,它似乎没有结果.

在Javascript处理之前,我无法正确转义反斜杠.

如何用(\\)替换(\)以便Javascript会很开心?

谢谢,德里克

moo*_*dow 22

如果它是文字,你需要 Javascript看到之前逃避反斜杠; 没有办法解决这个问题.

var newpath = 'file:///C:\\funstuff\\buildtools\\viewer.html';
window.location = newpath;
Run Code Online (Sandbox Code Playgroud)

如果newpath从其他地方获取其值,并且确实包含单个反斜杠,则不需要将它们加倍; 但是如果你真的想出于某种原因,不要忘记在replace()调用中转义反斜杠:

newpath.replace(/\\/g,"\\\\");
Run Code Online (Sandbox Code Playgroud)

为什么在Javascript处理之前你没有选择正确转义反斜杠?如果问题是您的Javascript源是从其他脚本语言生成的,该脚本语言本身使用\作为转义字符,只需添加一个转义级别:

var newpath = 'file:///C:\\\\funstuff\\\\buildtools\\\\viewer.html';
Run Code Online (Sandbox Code Playgroud)


McA*_*den 5

您应该替换为“\\\\”,因为“\\”转义为单个 \,因此没有变化。