【发布时间】:2012-03-07 20:50:11
【问题描述】:
我在这里有一个工作示例: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/];
【问题讨论】:
-
为什么不将数组创建为
[/wolves/i, /Duck/]?为什么要使用字符串?这对我来说似乎是一个不必要的并发症。 -
@FelixKling:我什至不知道这是可能的,不要使用引号。
-
你是如何创建正则表达式的?
/.../表示正则表达式文字。您之前一定使用过/.../.test(...)或str.match(/.../)。无论如何,这里有一些文档:developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions -
@FelixKling:是的,我一直在使用
str.match(/.../),尽管我不知道可以不在数组中使用字符串,假设正则表达式可能包含未转义的字符并失败;或者我可能试图匹配一个点并意外关闭一个数组项。
标签: javascript regex arrays