Store regex in string in javascript?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Converting user input string to regular expression
javascript new regexp from string
我在javascript中遇到了一点关于regex的问题(我还不太习惯在javascript中使用regex)。我想替换字符串中的一些东西,我注意到编写regex的语法似乎没有
现在这一切都按预期工作了,但是我希望用户能够在不更改代码的情况下从界面添加自己的regex(我为一个不编码的朋友做了一个私人项目,我希望能够在需要替换新的东西而不是每次都重新打包时,只将regex发送给他输入)。我通过一个xul文本框(这是一个firefox加载项,但应该与HTML文本框相同)来实现这一点,他在其中输入regex,将其添加到一个json对象并保存。我试着做这样的事情:
1 2 3 4 | var replacedtitle =""; for(a = 0; a < regex.data.length;a++){ replacedtitle = title.replace(regex.data[a].regex,""); } |
但它不起作用。我怀疑这是因为
我对此有点不确定,任何帮助都将不胜感激。
你可以用EDCOX1×0来创建一个ReGEX对象,并用字符串提供模式和修饰符;
1 | var re = new RegExp("\\[.*?\\]","g"); |
将字符串拆分为模式和修饰符。
1 2 3 4 5 6 7 8 | function getRegFromString(string){ var a = string.split("/"); modifiers= a.pop(); a.shift(); pattern = a.join("/"); return new RegExp(pattern, modifiers); } getRegFromString("/\[.*?\]/gim"); |
您可以像本教程中那样创建一个新的regexp对象。
1 2 | var string ="/\[.*?\]/g"; var regex = new RegExp(string); |
我会正常工作。