JS 手机号、电话号码正则表达式
正则表达式(Regular Expression)是一个描述字符模式的对象。
使用javascript正则表达式可以进行强大的模式匹配和文本检索与替换功能。
手机号码正则表达式验证
<script type="text/javascript"> // 验证手机号, true - 合法, false - 不合法 function validMobile(mobile){ var mobileReg = /^1[3|4|5|7|8]\d{9}$/; // 检测 13/14/15/17/18 开头的11位数字 var mobileReg = /^1[3,4,5,7,8][0-9]{9}$/; // 检测 13/14/15/17/18 开头的11位数字 if( mobileReg.test(mobile) ){ return true; } return false; } // 验证手机号, true - 合法, false - 不合法 function validMobile2(mobile){ var mobileReg = /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/; if( mobileReg.test(mobile) ){ return true; } return false; } var mobile = '17896080352'; document.write(mobile + " - validMobile: " + validMobile(mobile) + ", validMobile2: " + validMobile2(mobile) + "<br><br>"); var mobile = '17996080352'; document.write(mobile + " - validMobile: " + validMobile(mobile) + ", validMobile2: " + validMobile2(mobile) + "<br><br>"); // 验证固定电话, true - 合法, false - 不合法 function validTelephonne(telephone){ var telephoneReg = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/; // 010-60605232-2468, 0271-6541234 var telephoneReg = /^0\d{2,3}-?\d{7,8}$/; if( telephoneReg.test(telephone) ){ return true; } return false; } // 验证身份证号, true - 合法, false - 不合法 function validCardID(cardId){ var cardIdReg = /^[1-9]d{7}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}$/; // 15位 var cardIdReg = /^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{4}$/; // 18位 var cardIdReg = (^d{15}$)|(^d{17}([0-9]|X)$); // 合并后的身份证 if( cardIdReg.test(telephone) ){ return true; } return false; } </script>
下面简单的解释一下:
/^1[3|4|5|7|8]\d{9}$/
表示以1开头,第二位可能是3/4/5/7/8等的任意一个,在加上后面的\d表示数字[0-9]的9位,总共加起来11位结束。
JS最新手机号码检验
看到网上很多代码都很复杂,还包括以中文开头的0、86、17951,其实谁会填这么多,无非是检验一下他们是否位数对不对,开头有没有写错而已。
手机号码段有移动、联通、电信:
移动
中国移动手机号码开头数字
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
联通
中国联通手机号码开头数字
2G号段(GSM网络)130、131、132、155、156
3G上网卡 145
3G号段(WCDMA网络)185、186
4G号段 176、185[1]
电信
中国电信手机号码开头数字
2G/3G号段(CDMA2000网络)133、153、180、181、189
4G号段 177
从以上可以看到第一位是【1】开头,第二位则则有【3,4,5,7,8】,第三位则是【0-9】,第三位之后则是数字【0-9】。从而我们可以得出一个符合当前的手机号码验证正则表达式。
猜你可能会喜欢关于JavaScript正则的文章:
- JavaScript中的正则表达式总结(大量的正则)
- JavaScript正则表达式(例子)
固定电话号码正则表达式:
//code from http://caibaojian.com/regexp-example.html
function checkTel(){
var tel = document.getElementById('tel').value;
if(!/^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/.test(tel)){
alert('固定电话有误,请重填');
return false;
}
}
身份证正则:
//身份证正则表达式(15位)
isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
//身份证正则表达式(18位)
isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
身份证正则合并:(^\d{15}$)|(^\d{17}([0-9]|X)$)
最新手机号码正则表达式:2016年1月13更新,以下不再使用
var tel = $("#telNo").val(); //获取手机号 var telReg = !!tel.match(/^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/); //如果手机号码不能通过验证 if(telReg == false){ }
2015-11-20(新增兼容电话和手机正则)
((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)
匹配格式:
11位手机号码
3-4位区号,7-8位直播号码,1-4位分机号
如:12345678901、1234-12345678-1234
使用方式同上:
var telReg = !!tel.match(/^((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)$/); //如果通过认证 if(telReg){ }
其他
提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? 提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? 提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)
提取信息中的中国手机号码:(86)*0*13\d{9} 提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14} 提取信息中的中国邮政编码:[1-9]{1}(\d+){5} 提取信息中的中国身份证号码:\d{18}|\d{15} 提取信息中的整数:\d+ 提取信息中的浮点数(即小数):(-?\d*)\.?\d+ 提取信息中的任何数字 :(-?\d*)(\.\d+)? 提取信息中的中文字符串:[\u4e00-\u9fa5]* 提取信息中的双字节字符串 (汉字):[^\x00-\xff]*
使用:
test()方法在字符串中查找是否存在指定的正则表达式,并返回布尔值,如果存在则返回true,否则返回false。
var pattern = new RegExp('Box','i');
var str = 'box';
alert(pattern.test(str)); //true
var pattern = /Box/i;
var str = 'box';
alert(pattern.test(str)); //true
var pattern = /Box/i;
var str = 'This is a box';
alert(pattern.test(str)); //true
参考推荐:
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2019-12-15 23:30:51
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!
转载注明: JS 手机号、电话号码正则表达式 (米扑博客)