代码是这样的: var reg = /^1[345678][0-9]{9}$/g; console.log(reg.test(15328044636)); console.log(reg.test(15328044636)); 会发现控制台打印的数据却是: true false 问题原因 这是因为正则reg的g属性,设置的全局匹配。RegExp有一个lastIndex属性,来保存索引开始位置。 上面的问题,第一次调用的lastIndex值为0,到了第二次调用,值变成了11。 var reg = /^1[345678][0-9]{9}$/g; console.log(reg.lastInd