Javascript数组字符串到正则表达式文字 [英] Javascript array string to regex literal

查看:73
本文介绍了Javascript数组字符串到正则表达式文字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a working example here: http://jsfiddle.net/R7KuK/

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

I've tried to create an array containing full regular expressions with regex delimiters and set flags, but the RegExp object parses given strings as strings, not as regular expressions.

  var regex = "/wolves/i"

vs。

  var regex = /wolves/i

我的问题是:如何将字符串编辑的正则表达式转换为实际的正则表达式?

My question is: How do I convert string-ed regex into an actual regular expression?

更新:直到 Felix King 才开始向我解释说

UPDATE: It wasn't until Felix King kindly explained to me that

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] );

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

Better cause if your regex contains '/', the first one will fail. ;)

这篇关于Javascript数组字符串到正则表达式文字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆