Javascript数组字符串到正则表达式文字

Javascript array string to regex literal

我在这里有一个工作示例:http://jsfiddle.net/r7kuk/

我试图创建一个包含带有regex分隔符和设置标志的完整正则表达式的数组,但是regexp对象将给定的字符串解析为字符串,而不是正则表达式。

1
  var regex ="/wolves/i"

VS

1
  var regex = /wolves/i

我的问题是:如何将String ED正则表达式转换成实际的正则表达式?

最新消息:直到费利克斯·金友好地向我解释

1
var array = ["/wolves/i","/Duck/"];

可以安全地成为:

1
var array = [/wolves/i, /Duck/];


试试这个:

1
2
var regexSplit = regex.split( '/' );
var realRegex = new RegExp( regexSplit[1], regexSplit[2] );

或更好:

1
2
var regexMatch = regex.match( /^\/(.*)\/([^\/]*)$/ );
var realRegex = new RegExp( regexMatch[1], regexMatch[2] );

更好的原因是,如果正则表达式包含"//",第一个将失败。;)


从这里被盗:

Use the RegExp object constructor to create a regular expression from a string:

1
2
3
var re = new RegExp("a|b","i");
// same as
var re = /a|b/i;