使用单个替换替换字符串中的多个字符

时间:2017-03-03 19:58:48

标签: javascript regex string

我正在尝试用一个replace替换多个字符。我正在尝试以下方法:

var a = "[info]";
a = a.replace(/([|])/g,""); // Want to replace [ and ]

但上面的代码片段不起作用。它给出了相同的字符串,没有任何替换。我在这里缺少什么?

4 个答案:

答案 0 :(得分:1)

必须转义

[方括号。 ]没有必要,但逃避它是一个好习惯 - 以防万一。 (感谢Wiktor指出它。)

var a = "[info]";
a = a.replace(/(\[|\])/g, '');

console.log(a);

答案 1 :(得分:0)

您可以跳过该组并转义开括号,因为open括号用于打开一个字符类。



console.log("[i[nf]o]".replace(/\[|]/g, ''));     // all
console.log("[i[n]fo]".replace(/^\[|]$/g, '')); // only at start and end




答案 2 :(得分:0)

简单地逃避[,因为它们是特殊字符:

a.replace(/\[|]/g, "");

感谢@ Wiktor-Stribiżew

以下是出于测试原因的代码段:

console.log("[info]".replace(/\[|]/g, ''));

答案 3 :(得分:0)

您在|[之间加],因此它将充当char类并检查|的出现次数

简单地逃避首发



var a = "[info]";
a = a.replace(/(\[|])/g,"");
console.log(a);




与您编写的正则表达式匹配的字符串是



var a = "[i|nfo]";
a = a.replace(/([|])/g,"");
console.log(a);




如上所示,|已被替换。