JavaScript手机号码格式验证方法(正则表达式验证)支持最新电信199移动198联通166

JavaScript手机号码格式验证方法(正则表达式验证)支持最新电信199移动198联通166

以前我们偷懒只验证位数,或者如下只验证第二位:

/^1[34578]\d{9}$/

可是带来了问题,它无法验证一些不存在的号段。那么怎么办?因此我们要根据现在各大运营商已知号段进行校验。

以下为截止2018年1月各大运营商已知手机号码号段:

更新时间2018年1月11日

移动号段:

134 135 136 137 138 139 147 148 150 151 152 157 158 159 172 178 182 183 184 187 188 198

联通号段:

130 131 132 145 146 155 156 166 171 175 176 185 186

电信号段:

133 149 153 173 174 177 180 181 189 199

虚拟运营商:

170

手机号码格式号段新增加了电信199号段、移动198号段、联通166号段

如上,我们得到了正则表达式

/^0?(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[8-9])[0-9]{8}$/

这样就可以对手机号码格式进行相对严谨进行校验了。

注意这里初始值为0,不校验可去掉‘0?’。

/^(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[8-9])[0-9]{8}$/

由于电信199、移动198、联通166号段刚刚发布,所以很多网站和APP都没有更新验证规则或者短信平台未更新,以致于前端就给拦截了,希望早点更新!

有童鞋问我javascriptjquery中正则表达式咋写?

let valid_rule = /^(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[8-9])[0-9]{8}$/;

// 手机号码校验规则

if ( ! valid_rule.test(phone_number)) {

alert('手机号码格式有误'); return false;

}

 

这样phone_number就是取到的手机号码,即可!

 

觉得好的话记得打赏赞助小灰灰哦,小灰灰灰更有动力的,谢谢

小灰灰

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: