这个问题已经在这里有了答案:




已关闭8年。






我在javascript中使用正则表达式有点问题(我现在还不太习惯在javascript中使用正则表达式)。我想替换字符串中的某些内容,并且发现编写正则表达式的语法似乎没有'",例如:var replacedtitle = title.replace(/\[.*?\]/g, "");
现在这一切都按预期工作了,但是我希望用户能够在不更改代码的情况下从界面添加自己的正则表达式(我正在为一个不编写代码的 friend 做一个私有(private)项目,并且我希望能够仅在需要更换新东西时才将正则表达式发送给他,而不是每次都重新包装一切)。我通过在其中输入正则表达式的xul文本框(这是一个firefox插件,但应该与html文本框相同)来完成此操作,然后将其添加到json对象并保存。我试图做这样的事情:

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

但它行不通。我怀疑这是因为regex.data[a].regex将被当作字符串,但是replace()似乎没有将字符串作为第一个参数,对吗?

我对此不太确定,我们将不胜感激。

最佳答案

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

var re = new RegExp("\\[.*?\\]", "g");

09-17 17:20
查看更多