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

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

原码如下:


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])

        }

https://img2.mukewang.com/5c7648a20001c49207130384.jpg

慕姐8265434
浏览 446回答 2
2回答

阿晨1998

/^1[3|5|8]\d{9}$/; // 修正一下你的正则, 这样会可靠点 如果只是为了验证手机号格式带g 的如果用了 exec 一个字符串做匹配,会有缓存问题,按你想要的效果,你可以在 reg.test(str) 之前 把 reg.lastIndex = 0; 这个用上
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript