JS组合正则表达式不起作用

时间:2018-06-19 16:35:33

标签: javascript regex replace

当我这样做时:

areport = areport.replace(/\\"/g, "");
areport = areport.replace(/{/g, "");
areport = areport.replace(/}/g, "");
areport = areport.replace(/[\[\]']+/g, "");
areport = areport.replace(/,/g, "");
areport = areport.replace(/"/g, "");
areport = areport.replace(/\\/g, "");
areport = areport.replace(/null/g, "");

它有效,但是当我这样做时:

areport = areport.replace(/\[\]\/\\,\{\}\"null/g, "");

不是。我已经用'regex101'对其进行了检查,它返回“ g修饰符:全局。所有匹配项(第一次匹配后不返回)”,因此我尝试重新排列顺序,但无济于事。请告诉我我的方式的错误。谢谢。

2 个答案:

答案 0 :(得分:1)

您的代码正在寻找以下确切的字符串:[]/\,{}"null。如果要查找这些字符中任何一个的任何实例,则需要将它们放在方括号中,该函数可搜索“这些字符中的任何一个”。然后可以将空值放在一个或|字符之后。

/[[\]/\\,{}"]|null/g

答案 1 :(得分:0)

谢谢大家的帮助。答案是添加“ |”在每个字符之间

areport = areport.replace(/\\|\{|\}|\[|\]|\\|,|\"|null/g, "");

,因此正则表达式知道要查找任何全局实例而不是特定顺序。有趣的是,在我检查的任何资源中都找不到任何引用(一定看起来不够辛苦)。还要感谢TFrazee指出了这一点。