⼿机号码的正则表达式校验
看到⽹上很多代码都很复杂,还包括以中⽂开头的86,17951,其实谁会填这么多,⽆⾮是检验⼀下他们是否位数对不对,开头有没有写错⽽已。
正则匹配手机号码下⾯我们从百度百科的⼿机号码历程来看:现在的⼿机号码段有联通、移动和电信。
电信
中国电信⼿机号码开头数字
2G/3G号段(CDMA2000⽹络)133、153、180、181、189
4G号段 177
联通
中国联通⼿机号码开头数字
2G号段(GSM⽹络)130、131、132、155、156
3G上⽹卡145
3G号段(WCDMA⽹络)185、186
4G号段 176、185[1]
移动
中国移动⼿机号码开头数字
2G号段(GSM⽹络)有134x(0-8)、135、136、137、138、139、150、151、152、158、159、182、183、184。
3G号段(TD-SCDMA⽹络)有157、187、188
3G上⽹卡 147
4G号段 178
从以上我们可以看到第⼀位是【1】开头,第⼆位则则有【3,4,5,7,8】,第三位则是【0-9】,第三位之后则是数字【0-9】。从⽽我们可以得出⼀个符合当前的⼿机号码验证正则表达式。var reg = /^1[3|4|5|7|8][0-9]{9}$/; //验证规则
var phoneNum = '155********';//⼿机号码
var flag = st(phoneNum); //true
但你想过没有,也许这个第⼆位代码可能随时增加⼀个,⽐如以16开头呢?19开头呢?谁知道以后的事,咱们的代码要保证⼏年没问题,所以还可以不验证第⼆位规则:
var reg = /^1[0-9]{10}$/;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论