本文作者:DurkBlue

常用的几个正则表达式

常用的几个正则表达式摘要: 一般表单页面都需要填写手机号,校验用户输入的手机号码是否正确,就要用到正则表达式,用正则表达式来匹配手机号段,如在运营商号段内,则号码正确。因此,需要知道运营商最新的号段,如下所示...

一般表单页面都需要填写手机号,校验用户输入的手机号码是否正确,就要用到正则表达式,用正则表达式来匹配手机号段,如在运营商号段内,则号码正确。因此,需要知道运营商最新的号段,如下所示:


各大运营商手机号码段(新)


中国电信号段


133、153、173、177、180、181、189、190、191、193、199


中国联通号段


130、131、132、145、155、156、166、167、171、175、176、185、186、196


中国移动号段


134(0-8)、135、136、137、138、139、1440、147、148、150、151、152、157、158、159、172、178、182、183、184、187、188、195、197、198


中国广电号段


192


其他号段


14号段部分为上网卡专属号段:中国联通145,中国移动147,中国电信149


虚拟运营商:


电信:1700、1701、1702、162

移动:1703、1705、1706、165

联通:1704、1707、1708、1709、171、167

卫星通信:1349、174

物联网:140、141、144、146、148


通过以上号段可以看出,手机号码起始1,第二位是3456789中的任意一个,第三位有的是0-9全段,有的只是部分,如下:


13和18开头的手机号是全段


13开头的手机号是全段:13 [0123456789] 比如130,131,132…139

18开头的手机号是全段:18[0123456789] 比如180,181,182…189


15和19开头的手机号后面除4外都有,无154和194


15 [012356789] 比如150,151,152,153,155…159

19 [012356789] 比如190,191,192,193,195…159


17开头的手机号后面除9外都有


17 [01235678] 比如170,171,172,173…178


14开头的手机号除2,3外都有,无142和143


14[01456879] 比如140,141,144,145…149


16开头的手机号后面只有2567


16[2567] 比如:162,165,166,167


了解了运营商的最新号段,下面就写出手机号验证的最新正则表达式:


/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/

1

在javascript中的示例:


<script>

var reg_user = /^[\u4e00-\u9fa5]{2,4}$/;    //2-4个中文字符正则

var reg_tel = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;    //11位手机号码正则

function checkSubmit() {

if (document.form.user.value =="") {

alert("姓名不能为空!");

document.form.user.focus();

return false;

} else if (!reg_user.test(document.form.user.value)) {

alert("姓名只能为2-4中文!");

document.form.user.focus();

document.form.user.select();

return false;

}

if (document.form.tel.value =="") {

alert("请填写您的手机号码!");

document.form.tel.focus();

document.form.tel.select();

return false;

} else if (!reg_tel.test(document.form.tel.value)) {

alert("请正确填写您的手机号码!");

document.form.tel.focus();

document.form.tel.select();

return false;

}

}

</script>

1

因为手机号都是以1开始的,所以也可以这样写:


/^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/

1

这是把所有运营商号段写在一起的,包括虚拟运营商、物联网等,大家也可以根据项目需求来写。


表单字段验证常用正则表达式


1、姓名


/^[\u4e00-\u9fa5]{2,4}$/    //2-4个中文字符正则

1

2、手机号码


/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/

1

3、座机号码


/^(0\d{2,3})-?(\d{7,8})$/

1

4、电子邮箱


/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/

1

5、身份证号码

(1)普通校验


/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/

1

(2)精准校验

18位


 /^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/

1

15位


/^[1-9]\d{5}\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$/

1

后6位


 /^(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/

1

6、QQ号码


/^[1-9][0-9]\d{4,9}$/

1

7、邮政编码


/^[1-9]\d{5}$/

1

8、注册账号


/^[a-zA-Z][a-zA-Z0-9_]{4,15}$/

此篇文章由DurkBlue博客申请发布,转载吧请注明来处
文章投稿或转载声明

来源:DurkBlue版权归原作者所有,转载请保留出处。本站文章发布于 2021-12-11
温馨提示:文章内容系作者个人观点,不代表DurkBlue博客对其观点赞同或支持。

赞(0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论取消回复

快捷回复:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog

评论列表 (暂无评论,1576人围观)参与讨论

还没有评论,来说两句吧...