在javascript中将正则表达式存储在字符串中?

gal*_*tor 1 javascript regex xul firefox-addon

可能重复:
将用户输入字符串转换为正则表达式
javascript new regexp from string

我在javascript中使用正则表达式有一点问题(我还不习惯在javascript中使用正则表达式).我想替换字符串中的一些东西,我注意到写正则表达式的语法似乎没有'"像这样:var replacedtitle = title.replace(/\[.*?\]/g, "");

现在这一切都按预期工作,但我希望用户能够在不更改代码的情况下从界面添加自己的正则表达式(我正在为不编码的朋友做私有项目,我希望能够当需要更换新的东西而不是每次重新包装所有东西时,只发送正则表达式输入.我这样做是通过一个xul文本框(这是一个firefox插件,但应该是一个html文本框),在那里输入正则表达式,它被添加到一个json对象并保存.我尝试过这样的事情:

var replacedtitle = "";
for(a = 0; a < regex.data.length;a++){
    replacedtitle = title.replace(regex.data[a].regex, "");
}
Run Code Online (Sandbox Code Playgroud)

但它不会工作.我怀疑它是因为regex.data[a].regex将被视为一个字符串,但replace()似乎并没有将字符串作为第一个参数,对吧?

我对此有点不确定,任何帮助都会非常感激.

Bjö*_*örn 11

您可以new改为创建一个RegEx对象,并为模式和修饰符提供字符串;

var re = new RegExp("\\[.*?\\]", "g");
Run Code Online (Sandbox Code Playgroud)

  • 哦谢谢。我尝试了这个,但我不知道你必须删除正则表达式周围的“/”。现在可以正常使用了,tackar :&gt; (2认同)
  • @raina77ow——感谢您的编辑,我太快了...... (2认同)