正则表达式 调用test方法时 -g全局匹配出现两次结果不同的问题

时间:2021-04-16 12:17:26   收藏:0   阅读:0

最近使用字面量正则表达式发现偶数次匹配结果出错,而奇数次匹配结果正确,如下图

技术图片

当去掉全局匹配时结果正确

技术图片

 

 

 

翻了下红宝书的说明,原文如下:

技术图片

 

 技术图片

 

 大意是说用字面量创建的正则表达式是全局共用RegExp对象,第一次匹配是保证正确,而隔一次调用时会从它的第3个索引处开始找,也就是上一次的匹配结果里面去找,因此会找不到;由于第二次已经把字符串的尾端找过了,下一次又会从头开始找,所以第3次又正确了。

总结:以后全局匹配时尽量用实例对象来调用,确保每次匹配时都是从头开始,以避免上述错误。

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!