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

标签 javascript regex arrays

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

相关文章:

javascript - 在 Phaser.IO 中沿着预定义的路径移动 Sprite

正则表达式替换匹配的组内容?

javascript - 有没有办法使用 gulp 删除 require.js Define([...]) 包装器的所有实例?

c - 如何从二进制文件读取到字符串/数组和 c 中的 int?

javascript - 分配给变量时函数未定义

javascript - 调用 this.$scope.$digest(); 的影响

javascript - 如何在使用 setInterval 时动态更改间隔

用于从 anchor 标记中提取 anchor 文本的 Javascript

arrays - Erlang 数组与列表

javascript - 从数组创建对象数组