如果直接量后面有/g(设置了 global全局查找参数),那么同一个test对象会记录上次匹配字符的索引位置。下次再匹配时会从这个位置开始。如果没有,则匹配索引<0。下次在此匹配时就仍然从0位置字符开始。
exec也是如此。
解决办法:合理使用global
global的正确用法
var re = /\w/g;
re.test('ab'); // true
re.test('ab'); // true
re.test('a'); // true
re.test('b'); // false
网友评论