使用javascript将反斜杠转换为正斜杠无法正常工作?

Jun*_*r M 14 javascript slash backslash

我有一个javascript变量从遗留系统传入反斜杠到正斜杠:

'/46\465531_Thumbnail.jpg'

我试图转换成这个:

'/46/465531_Thumbnail.jpg'.

没有办法解决遗留系统上的问题.

这是我在IE8浏览器上运行的命令:

javascript:alert("/46\465531_Thumbnail.jpg".replace(/\\/g,"/"));
Run Code Online (Sandbox Code Playgroud)

作为回应我得到:

---------------------------
Message from webpage
---------------------------
/46&5531_Thumbnail.jpg
---------------------------
OK   
---------------------------
Run Code Online (Sandbox Code Playgroud)

实际上我只想翻译成 '/46/465531_Thumbnail.jpg'

怎么了?

Poi*_*nty 31

您需要将字符串常量中的反斜杠加倍:

alert("/46\\465531_Thumbnail.jpg".replace(/\\/g,"/"));
Run Code Online (Sandbox Code Playgroud)

如果您的遗留系统实际上是在您的页面上创建了JavaScript字符串常量,并且嵌入的,未引用的(即不是双倍的)反斜杠,那么它就会被破坏而且您会遇到问题.但是,如果您通过XML或JSON或其他任何类型的ajax调用获取字符串,那么您的代码看起来没问题.