Javascript 使用.match的正则表达式数组
我有一件事要做 我想使用AJAX/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
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/];
原始答案:
JavascriptRegExp
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);