在某个案例中,我只想 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()
之类的字符串操作建议任何解决方案。我正在寻找正则表达式的答案,需要找到我的正则表达式无效的原因。
答案 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);
老实说,我不知道幕后发生的事情正在使用单打反斜杠,但我猜他们正在逃脱。