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

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

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

 

 

 

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

 

 

 

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

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

 

posted @ 2021-04-16 00:20  学海Sea  阅读(200)  评论(0)    收藏  举报