电信·
中国电信手机号码开头数字
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 = '15507621999';//手机号码var flag = reg.test(phoneNum); //true
但你想过没有,也许这个第二位代码可能随时增加一个,比如以16开头呢?19开头呢?谁知道以后的事,咱们的代码要保证几年没问题,所以还可以不验证第二位规则:
var reg = /^1[0-9]{10}$/;
11月16日,中华人民共和国工业和信息化部(以下简称“工信部”)在其官方网站上发布了《第10批<电信网码号资源使用证书>颁发结果公示及领证通知》(以下简称《通知》)。公示结果显示,中国电信获得了199(0~9)号段的公众移动通信网网号,198(0~9)号段的公众移动通信网网号被中国移动获得,中国联通则将166(0~9)号段的公众移动通信网网号收入囊中。
var reg = /^0?(13[0-9]|15[012356789]|18[012346789]|14[57]|17[678]|170[059]|14[57]|166|19[89])[0-9]{8}$/;
中国移动:134、135、136、137、138、139、150、151、152、157(TD)、158、159、182、183、184、187、178、188、147(数据卡号段)、1705(虚拟运营商移动号段)
中国联通:130、131、132、145(数据卡号段)、155、156、176、185、186、1709(虚拟运营商联通号段)
中国电信:133、153、177、180、181、189、(1349卫通)、1700(虚拟运营商电信号段)