我正在尝试用一个replace
替换多个字符。我正在尝试以下方法:
var a = "[info]";
a = a.replace(/([|])/g,""); // Want to replace [ and ]
但上面的代码片段不起作用。它给出了相同的字符串,没有任何替换。我在这里缺少什么?
答案 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);

如上所示,|
已被替换。