作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用正则表达式数组并使用“exec”操作迭代该数组。我确实用像这样的各种正则表达式初始化了一个数组:
var arrRegex = new Array(/(http:\/\/(?:.*)\/)/g, /(http:\/\/(?:.*)\/)/g);
现在我创建了一个执行此操作的 for 循环:
for(i=0;i<arrRegex.length;i++){
arrRegex[i].exec(somestring);
}
问题是这似乎行不通。我不想像这样硬编码使用它:
(/(http:\/\/(?:.*)\/)/g).exec(somestring);
使用数组选项时,'.exec' 函数返回 null。当我使用硬编码选项时,它会返回我想要的匹配项。
最佳答案
exec()
返回匹配项,因此您应该能够捕获它。
somestring = 'http://stackoverflow.com/questions/11491489/iterate-through-regular-expression-array-in-javascript';
var arrRegex = new Array(/(http:\/\/(?:.*)\/)/g, /(http:\/\/(?:.*)\/)/g);
for (i = 0; i < arrRegex.length; i++) {
match = arrRegex[i].exec(somestring);
}
match
是一个数组,结构如下:
{
[0] = 'string matched by the regex'
[1] = 'match from the first capturing group'
[2] = 'match from the second capturing group'
... and so on
}
看看这个 jsFiddle http://jsfiddle.net/HHKs2/1/
您还可以使用 test()
而不是 exec()
作为 exec() != null
的简写。 test()
将根据正则表达式是否匹配字符串的一部分返回一个 bool 变量。
关于javascript - 在 Javascript 中遍历正则表达式数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11491489/
我是一名优秀的程序员,十分优秀!