JS最新手机号码检验正则表达式

看到网上很多代码都很复杂,还包括以中文开头的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】。从而我们可以得出一个符合当前的手机号码验证正则表达式。

//code from http://caibaojian.com/phone-regexp.html
var reg = /^1[3|4|5|7|8][0-9]{9}$/; //验证规则  最前面的1表示只能是以1开头,这点毋庸置疑,[3|4|5|7|8]表示手机号的第二位可以是3、4、5、7、8当中的任意一位,
如果以后出来了11、12或者16、19开头的手机号则只需要将其改为 [1|2|3|4|5|6|7|8|9]即可,这块主要是对手机号的第二位数据进行验证,接下来的[0-9]{9}表示后面的9位
可以是0-9当中的任意数据,加上前面的2位,正好组成了一个11位的手机号! 将红色部分的理解了,基本以后写手机邮箱之类的正则就没什么太大问题,只需要根据需求做相应
的修改即可

var phoneNum = '15507621999';//手机号码

var flag = reg.test(phoneNum); //true

最后给大家推荐一个专门查找淘宝天猫优惠券的网站, 喜欢网购的朋友不妨去看看, 上面有不少商品的优惠券,可以帮大家购物省钱, 去了不会让你失望的, 感谢大家的支持! 点击打开链接   


如果大家觉得进网站有点麻烦,毕竟我们使用手机购物还是占大多数, 那我直接给大家推荐一个手机APP软件吧, 
注册下载一个花生日记,直接复制商品标题,自动搜索淘宝天猫优惠券!先领券,再购物,更划算!
-------------

识别下面的二维码下载:

JS最新手机号码检验正则表达式_第1张图片

注册邀请码 WZXMITO    填写邀请码自动升级为代理商 !
自用省钱,分享赚钱。活动期间免费升级代理商,成为超级会员分享宝贝即可赚高佣

你可能感兴趣的:(JavaScript)