因为你这里相当于把正则表达式运行了三次,reg.test 虽然返回值是true,但它实际上的测试结果为a,然后reg.exec返回的是b,最后的reg.exec则返回c
你运行一下下面的代码就清楚了:
var str="abc"var reg=/[a-z]/g
console.log(reg.exec(str))
console.log(reg.exec(str))
console.log(reg.exec(str))
match(regExp),既match()使用指定的正则表达式搜索字符串,方法返回一个数组,记录了在字符串中匹配正则表达式的位置。exec(str)在目标字符串str中查找模式字符串match()以正则表达式为参数,exec()以字符串为参数