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)