我有一些我想要完成的事情。
我想使用AJAX / xml
构建一个数组。
array[/word0/, /word1/, /word2/]
并将其放入可在.match()
中使用的表单:
result = string.match(array)
我尝试使用for循环并使用string.match(array[i])
单步执行数组无效。
有一种简单的方法吗?
答案 0 :(得分:1)
你的方法很好。这是我的实施:
var regexes = [/^def/, /^abc/],
testString = 'abcdef',
numRegexes = regexes.length;
for(var x=0;x<numRegexes;x++) {
alert(regexes[x].test(testString));
}
答案 1 :(得分:1)
编辑:您可能遇到语法问题。以下是无效的语法:
array[/word0/, /word1/, /word2/]
像这样的东西修复了它:
var regexps = [/word0/, /word1/, /word2/];
原始回答:
Javascript RegExp
已经这样做了。你在寻找:
var regexp = /word0|word1|word2/;
假设您的匹配列表以正确的格式返回,您可以这样做:
var words = ["word0", "word1", "word2"];
var regexp = new Regexp(words.join("|"));
str.match(regexp);
答案 2 :(得分:0)
要初始化数组,请使用
var array = [/word0/, /word1/, /word2/];
然后你可以使用
str.match(array[i])
如果您的问题是“AJAX / xml”中的传输,那么您需要使用new RegExp(somestring)
构建正则表达式客户端,其中somestring
可能是"word0"
:你不能在XML中嵌入正则表达式 literal 。