同一个正则执行得到不同结果的原因

同一个正则公式,验证同一串字符串,执行的次数不同,得到了不同的结果

 

 原因:正则表达式中带了全局搜索标志"g"

这就要说说有g跟没有g的区别了,g代表全局搜索,js引擎在匹配的时候,会记录上一次匹配的位置,这个参数叫lastIndex,第一次的时候lastIndex为0,当有匹配的时候,就记住第一次匹配的位置。也就是说,你以为你验证的是同样的字符串,而js引擎看到的字符串模板可能就是乱七八糟的了,所以会出现不同的结果 。而对于不带全局搜索的正则表达式,它的lastIndex一直是0,这样就避免了同一个正则,执行的次数不同结果不同

posted @ 2022-06-28 15:02  light-bearer  阅读(261)  评论(0)    收藏  举报