js的正则对象会保存上次查找到的索引值 ,导致的结果就是执行相同的test或exec操作 会出现不同的结果
var reg = /\d/g
var s = '1sss'
var i = reg.test(s)
console.log(i,reg.lastIndex)
>>>true 1
var i = reg.test(s)
console.log(i,reg.lastIndex)
>>>false 0
要重置的话直接设置索引值就好了
reg.lastIndex = 0
var i = reg.test(s)
console.log(i,reg.lastIndex)
>>>true 1