我在这里有一个工作示例:http://jsfiddle.net/R7KuK/
我尝试创建一个包含带有正则表达式分隔符和set标志的完整正则表达式的数组,但是RegExp对象将给定的字符串解析为字符串,而不是正则表达式。
var regex = "/wolves/i"
VS
var regex = /wolves/i
我的问题是:如何将字符串编辑的正则表达式转换为实际的正则表达式?
更新:直到Felix King才向我解释
var array = ["/wolves/i", "/Duck/"];
可以安全地成为:
var array = [/wolves/i, /Duck/];
答案 0 :(得分:3)
试试这个:
var regexSplit = regex.split( '/' );
var realRegex = new RegExp( regexSplit[1], regexSplit[2] );
或更好:
var regexMatch = regex.match( /^\/(.*)\/([^\/]*)$/ );
var realRegex = new RegExp( regexMatch[1], regexMatch[2] );
更好的原因如果你的正则表达式包含'/',第一个会失败。 ;)
答案 1 :(得分:0)
从here被盗:
使用RegExp对象构造函数从字符串创建正则表达式:
var re = new RegExp("a|b", "i"); // same as var re = /a|b/i;