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

时间:2012-03-07 20:50:11

标签: javascript regex arrays

我在这里有一个工作示例: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/];

2 个答案:

答案 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;