为什么这条正则全局匹配是错的?
原码如下:
var str='13662890478';
var reg=/^1[3|5|8]\d{9}/g;
var result=reg.exec(str);
if(reg.test(str)){
console.log('对')
console.log(result[0])
}else{
console.log('错')
console.log(result[0])
}
/^1[3|5|8]\d{9}$/
; // 修正一下你的正则, 这样会可靠点 如果只是为了验证手机号格式带g 的如果用了
exec
一个字符串做匹配,会有缓存问题,按你想要的效果,你可以在reg.test(str)
之前 把reg.lastIndex = 0
; 这个用上