发现问题
这几天写一些正则校验,发现一个很有意思的报错,给大家看下。
当时看见这个我就很纳闷! 它在玩我,后来我有多试了几下发现好像和数量后关系
后来百度后才知道,在设置g标志使用test()方法进行匹配时候,会根据自身的lastIndex属性指向的位置进行匹配,一但reg匹配过一次之后,lastIndex属性就会+1,这时候 reg就会匹配下一个值。
如何解决这个问题那?
方法1: 把g去掉。不是用g全局匹配,lastIndex就不会+1
它的lastIndex变化
方法2:没校验一次,就修改一次lastIndex。
方法3: 不用变量存储正则。