【JS】正则表达式 匹配索引导致匹配失败问题

先看下面这个例子:

var re = /cat/g
for (var i = 0; i < 10; i++) {
    console.log(re.test('catfgfdjkgh'))
} 

我们会发现得到的结果是true false true false……,可能和我们预想的不一样。这是因为第一次调用test()找到了‘cat’,但第二次调用是从索引为3的字符(上一次匹配的末尾)开始的,所以匹配不到了,由于会检测到字符串末尾,所以下一次再调用test()就又从头开始了。

var re = null
for (var i = 0; i < 10; i++) {
    re = /cat/g
    console.log(re.test('catfgfdjkgh'))
}

这次结果就是 true…… 啦,循环匹配时,记得将实例属性重置才能得到我们想要的结果。

猜你喜欢

转载自blog.csdn.net/amyleeYMY/article/details/81742715
今日推荐