Javascript数组字符串到正则表达式文字 [英] Javascript array string to regex literal
本文介绍了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屋!
查看全文