如何在JavaScript中替换多个斜杠?

3
var str = "Hello\\\World\\\";
var newStr = str.replace("\\\", "");
alert(newStr); // I want this to alert: HelloWorld

斜杠的数量始终为3,不多不少。我该如何替换它们?上面的代码根本不起作用。我已经尝试过一些全局标志、转义斜杠等操作,但无法弄清楚。

3个回答

3
首先,你需要用另一个反斜杠来转义每个斜杠,就像@Bathsheba提到的那样。
此外,你需要将替换正则表达式设置为全局:
var str = "Hello\\\\\\World\\\\\\";
var newStr = str.replace(/\\\\\\/g, "");
alert(newStr); // I want this to alert: HelloWorld

1
如果您想在字符串常量中使用三个斜杠,则需要逐个进行转义:
var str = "Hello\\\\\\World\\\\\\";
var newStr = str.replace("\\\\\\", "");

在您当前的字符串中,\\\W将会被解释为一个反斜杠和一个错误,因为\W不是一个有效的序列。(一些更多的例子: \\ 是一个单独的反斜杠,\t 是一个制表符,\" 是一个引号字符)。

只替换第一次出现的文本,你需要添加全局修饰符。所以你的正则表达式应该是 /\\\/g。请查看这个链接:http://jsfiddle.net/RZ6TL/。 - ArchFever

0

尝试使用这个正则表达式 \\\\\\ 进行替换

enter image description here

\\ 表示 \

有12个具有特殊含义的字符:反斜杠 \、脱字符 ^、美元符号 $、句点或点 .、竖线或管道符号 |、问号 ?、星号或乘号 *、加号 +、左括号 (、右括号 ) 和左方括号 [、左花括号 {,这些特殊字符通常被称为“元字符”。

如果您想在正则表达式中将任何这些字符用作字面值,则需要使用反斜杠进行转义。


谢谢!现在一切都清晰明了。 - Weblurk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接