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