用正斜杠替换所有反斜杠

时间:2016-05-10 09:32:57

标签: javascript regex

在某个案例中,我只想 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:无效的正则表达式://:\ at   图案(...)

预期结果:

"//pest-TS01/Users/pest/Music/musi/New folder"

有人能给我一个与反斜杠准确匹配的正则表达式吗?还建议我如何用正斜杠替换匹配的反斜杠。而且我仍然相信我所设定的正则表达式是正确的,但为什么它表现得很奇怪呢?

特别说明:

请不要使用 split() 之类的字符串操作建议任何解决方案。我正在寻找正则表达式的答案,需要找到我的正则表达式无效的原因。

1 个答案:

答案 0 :(得分:2)

使用String.raw(),将单\转换为\\,最后\\转换为/

string = String.raw`\\pest-TS01\Users\pest\Music\musi\New folder`;
result = string.replace(/\b[\\]{1}\b/g, "/").replace(/\\+/, "/");
document.write(result);

老实说,我不知道幕后发生的事情正在使用单打反斜杠,但我猜他们正在逃脱。