Javascript正则表达式没有返回正确的结果

时间:2016-07-23 17:43:28

标签: javascript regex

如果我做错了,请看下面的例子并纠正我,

tableb

预期结果是:全部3个结果 但只记录两个列表和列表附件

1 个答案:

答案 0 :(得分:3)

正则表达式是可变对象。 test方法将改变lastIndex属性,当发生这种情况时,第一个索引已经被检查,因此数组中的第二个项目不会检查该索引。由于此时没有找到任何内容,索引会重置为零,这就是为什么最后一项也能正常工作的原因。您可以在每一步重置索引:

for (let i = 0; i < strings.length; i++) {
  _regex.lastIndex = 0; // reset index
  if (_regex.test(strings[i])) {
    console.log(strings[i]);
  }
}

或者只使用正则表达式文字:

for (let i = 0; i < strings.length; i++) {
  if (/L/gi.test(strings[i])) {
    console.log(strings[i]);
  }
}