【发布时间】:2016-05-10 09:32:56
【问题描述】:
在某种情况下,我只是想 replace 将所有 反斜杠 与 正斜杠,但在尝试这样做时,我我收到了一些奇怪的结果。
尝试 1:
"\\pest-TS01\Users\pest\Music\musi\New folder".replace(/\\/g, "/")
上面的行产生下面的结果
"/pest-TS01UserspestMusicmusiNew folder"
尝试 2:
var x = new RegExp("\\", "g");
"\\pest-TS01\Users\pest\Music\musi\New folder".replace(x, "/");
而上面的代码抛出如下错误,
Uncaught SyntaxError: Invalid regular expression: //: \ at end of 模式(…)
预期结果:
"//pest-TS01/Users/pest/Music/musi/New folder"
谁能给我一个准确匹配反斜杠的正则表达式?还建议我如何用正斜杠替换匹配的反斜杠。而且我仍然相信我构建的正则表达式是正确的,但是为什么它的行为很奇怪?
特别说明:
请不要建议任何使用字符串操作的解决方案,例如 split() 和类似的东西。我正在寻找正则表达式的答案,并且需要找出我的正则表达式不起作用的原因。
【问题讨论】:
-
你的第一个表达式是好的,你的字符串不是。必须是
"\\\\pest-TS01\\Users\\pest\\Music\\musi\\New folder" -
您的模式
.replace(/\\/g, "/")可以正常工作。 -
@WiktorStribiżew 你为什么这么说?正确的模式应该适用于每种字符串...所以 your string is not OK 没有意义。
-
我不明白反对票。这是一个有效的问题。
-
PS:我没有投反对票 - 但是它是重复的 - 例如stackoverflow.com/questions/2479309/…
标签: javascript regex