0

我有一些我想要完成的事情。

我想采用一个用 AJAX/ 构建的数组xml

array[/word0/, /word1/, /word2/]

并将其放入可用于 a 的形式中.match()

result = string.match(array)

我尝试使用 for 循环并单步执行数组string.match(array[i]),但无济于事。

是否有捷径可寻?

4

3 回答 3

1

http://jsfiddle.net/KALPh/

你的方法很好。这是我的实现:

var regexes = [/^def/, /^abc/],
    testString = 'abcdef',
    numRegexes = regexes.length;

for(var x=0;x<numRegexes;x++) {
    alert(regexes[x].test(testString));
}
于 2013-03-15T22:49:27.777 回答
1

编辑:您可能有语法问题。以下是无效的语法:

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);
于 2013-03-15T22:49:29.710 回答
0

要初始化您的数组,请使用

var array = [/word0/, /word1/, /word2/];

然后你可以使用

str.match(array[i])

如果您的问题是“AJAX/xml”中的传输,那么您需要构建正则表达式客户端new RegExp(somestring)somestring例如可能是"word0":您不能在 XML 中嵌入正则表达式文字。

于 2013-03-15T22:47:43.883 回答