我这里有一个工作示例:http://jsfiddle.net/R7KuK/
我试图创建一个包含完整正则表达式的数组,其中包含正则表达式分隔符和设置标志,但 RegExp 对象将给定字符串解析为字符串,而不是正则表达式。
var regex = "/wolves/i"
对比
var regex = /wolves/i
我的问题是:如何将字符串正则表达式转换为实际的正则表达式?
更新:直到 Felix King亲切地向我解释说
var array = ["/wolves/i", "/Duck/"];
可以安全地成为:
var array = [/wolves/i, /Duck/];
最佳答案
试试这个:
var regexSplit = regex.split( '/' );
var realRegex = new RegExp( regexSplit[1], regexSplit[2] );
或者更好:
var regexMatch = regex.match( /^\/(.*)\/([^\/]*)$/ );
var realRegex = new RegExp( regexMatch[1], regexMatch[2] );
更好的原因是,如果您的正则表达式包含“/”,第一个将失败。 ;)
关于Javascript数组字符串到正则表达式文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9608835/