获得徽章 12
- 一个知识点记了好几天了,本来想发文章的,太懒了我
,现在用手机发一下。
Js正则带/g时,正则会有一个lastindex属性,这个属性会在使用正则test或者exec方法时记录第一次匹配结果的index。
如 abc 字符串,用/a/g 的test方法,第一次运行是true,第二次运行却是false,原因就是第一次运行后,正则的lastindex被置为了1,第二次从下标1开始执行,后面没有匹配到就会是false。
在不知道这个特性时,大家会觉得是自己代码写的有问题,所以还是要注意一下。
怎么解决上面那个问题呢?那就是直接把正则的lastindex属性置为0,这样正则每次都是从第一个下标开始执行方法的。如下
/a/g.lastindex=0
展开17 
,现在用手机发一下。