为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这条正则全局匹配是错的?

为什么这条正则全局匹配是错的?

慕姐8265434 2019-02-10 16:19:32
为什么这条正则全局匹配是错的?原码如下: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])        }
查看完整描述

2 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

/^1[3|5|8]\d{9}$/; // 修正一下你的正则, 这样会可靠点 如果只是为了验证手机号格式

带g 的如果用了 exec 一个字符串做匹配,会有缓存问题,按你想要的效果,你可以在 reg.test(str) 之前 把 reg.lastIndex = 0; 这个用上


查看完整回答
反对 回复 2019-02-27
  • 2 回答
  • 0 关注
  • 445 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信