Javascript替换了包括\'/\'在内的多个字符

| 我正在使用此代码段替换字符串中的几个字符。
var badwords = eval(\"/foo|bar|baz/ig\");
var text=\"foo the bar!\";
document.write(text.replace(badwords, \"***\"));
但是我要替换的字符之一是\'/ \'。我认为它不起作用,因为它是正则表达式中的保留字符,但是那怎么办呢? 谢谢!     
已邀请:
        首先不要使用EVAL,这是有史以来最邪恶的功能,在这里完全没有必要
var badwords = /foo|bar|baz/ig;
同样有效(或使用
new RegExp(\"foo|bar|baz\",\"ig\");
构造函数) 当您想在正则表达式中有一个ѭ3and,并且要转义一个字符之前有一个
\\
var badwords = /\\/foo|bar|baz/ig;
//or
var badwords = new RegExp(\"\\\\/foo|bar|baz\",\"ig\");//double escape to escape the backslash in the string like one has to do in java
    
        您只需在RegExp中转义\“ reserved \”字符:
var re = /abc\\/def/;
您可能会遇到麻烦,因为出于某种原因,您正在使用字符串作为RegExp,然后逃避了它……太奇怪了。
var badwords = /foo|bar|baz/ig;
是你所需要的全部。 如果您对字符串使用INISIST,则必须转义:
var badwords = eval( \"/foo|ba\\\\/r|baz/ig\" );
这将通过JS解释器得到一个反斜杠,使其进入RegExp引擎。     

要回复问题请先登录注册