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

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