正则表达式 调用test方法时 -g全局匹配出现两次结果不同的问题
时间:2021-04-16 12:17:26
收藏:0
阅读:0
最近使用字面量正则表达式发现偶数次匹配结果出错,而奇数次匹配结果正确,如下图
当去掉全局匹配时结果正确
翻了下红宝书的说明,原文如下:
大意是说用字面量创建的正则表达式是全局共用RegExp对象,第一次匹配是保证正确,而隔一次调用时会从它的第3个索引处开始找,也就是上一次的匹配结果里面去找,因此会找不到;由于第二次已经把字符串的尾端找过了,下一次又会从头开始找,所以第3次又正确了。
总结:以后全局匹配时尽量用实例对象来调用,确保每次匹配时都是从头开始,以避免上述错误。
评论(0)