验证手机号码格式

以下是移动官方拔下来的正则表达式: 

判断字符串是否是手机号码
 0是手机号码 1不是11位数字 2号码前缀不正确
 用于检验手机号的位数以及检验此手机中是否为中国移动的手机号*/
 由于存在携号转网的情况 允许3个运营商的全部号段(试点中)*/
 中国移动号码段:134(0至8号段) 135 136 137 138 139 147 150 151 152 157 158 159 178 182 183 184 187 188
 中国联通号码段:130 131 132 145 155 156 175 176 185 186
 中国电信号码段:133 153 177 180 181 189
 虚拟运营商号码段:170

技术分享
 1 // 判断字符串是否是手机号码
 2 // 0是手机号码 1不是11位数字 2号码前缀不正确
 3 /* 用于检验手机号的位数以及检验此手机中是否为中国移动的手机号*/
 4 /* 由于存在携号转网的情况 允许3个运营商的全部号段(试点中)*/
 5 // 中国移动号码段:134(0至8号段) 135 136 137 138 139 147 150 151 152 157 158 159 178 182 183 184 187 188
 6 // 中国联通号码段:130 131 132 145 155 156 175 176 185 186
 7 // 中国电信号码段:133 153 177 180 181 189
 8 // 虚拟运营商号码段:170
 9 function isPhoneNumber(phone) {
10     var rv = 0;
11 
12     var mbphnoM = /^(13[4-9])|^(147)|^(150)|^(151)|^(152)|^(157)|^(158)|^(159)|^(178)|^(182)|^(183)|^(184)|^(187)|^(188)/;
13     var mbphnoU = /^(130)|^(131)|^(132)|^(145)|^(155)|^(156)|^(175)|^(176)|^(185)|^(186)/;
14     var mbphnoT = /^(133)|^(153)|^(177)|^(180)|^(181)|^(189)/;
15     var mbphnoV =/^(170)/;
16       
17     var num11 = /^\d{11}$/; //11位数字;
18       
19     if (null != phone && "" != phone && num11.exec(phone)) {
20         
21         if (mbphnoM.exec(phone) || mbphnoU.exec(phone) || mbphnoT.exec(phone) || mbphnoV.exec(phone)) {
22             rv = 0;
23         }
24         else {
25             rv = 2;
26         }
27     }
28     else {
29         rv = 1;
30     }
31      
32     return rv;
33 }
View Code

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。