Javascript 使用.match的正则表达式数组

Javascript 使用.match的正则表达式数组,javascript,jquery,Javascript,Jquery,我有一件事要做 我想使用AJAX/xml构建一个数组 array[/word0/, /word1/, /word2/] 并将其转换为可在.match()中使用的形式: 我尝试过使用for循环,并使用string.match(array[I])单步遍历数组,但没有成功 有没有一种简单的方法可以做到这一点?要初始化阵列,请使用 var array = [/word0/, /word1/, /word2/]; 然后你可以用 str.match(array[i]) 如果您的问题是“AJAX/xml

我有一件事要做

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

array[/word0/, /word1/, /word2/]
并将其转换为可在
.match()中使用的形式:

我尝试过使用for循环,并使用
string.match(array[I])
单步遍历数组,但没有成功


有没有一种简单的方法可以做到这一点?

要初始化阵列,请使用

var array = [/word0/, /word1/, /word2/];
然后你可以用

str.match(array[i])
如果您的问题是“AJAX/xml”中的传输,那么您需要使用
new RegExp(somestring)
构建正则表达式客户端,其中
somestring
可能是
“word0”
:您不能在xml中嵌入regexliteral

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

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

for(var x=0;x<numRegexes;x++) {
    alert(regexes[x].test(testString));
}
var regexes=[/^def/,/^abc/],
testString='abcdef',
numRegexes=regexes.length;

对于(var x=0;x编辑:您可能有语法问题。以下语法无效:

array[/word0/, /word1/, /word2/]
类似这样的东西可以修复它:

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

原始答案:

Javascript
RegExp
s已经在执行此操作。您正在查找:

var regexp = /word0|word1|word2/;
假设您的匹配列表以正确的格式返回,您可以这样实现:

var words = ["word0", "word1", "word2"];
var regexp = new Regexp(words.join("|"));
str.match(regexp);

string.match(/word0 | word1 | word2/)
你的错误是什么?我认为你必须更具描述性,而不是“毫无用处”。你所做的是一个有效的解决方案,所以我猜你的问题在别处(有关更具体的猜测,请参阅我的答案)。我实际上没有收到任何错误。我理解使用示例的原理,但是,如果我在.join之前转储数组的内容,我会得到“word1”、“word2”、“word3”。在.join之后,我会得到以下内容:/(?:)/对不起,我想我应该说得更准确些。我只是给出了简略的代码。谢谢你,先生。我确实有语法问题。我切断了对原始数组的访问。虽然你花了几个小时帮我找到了它。也感谢其他人的建议。干杯
var words = ["word0", "word1", "word2"];
var regexp = new Regexp(words.join("|"));
str.match(regexp);