正則匹配手機號碼


正則匹配手機號碼

 

原文鏈接:https://blog.csdn.net/itbrand/article/details/109239620

 

一般表單頁面都需要填寫手機號,校驗用戶輸入的手機號碼是否正確,就要用到正則表達式,用正則表達式來匹配手機號段,如在運營商號段內,則號碼正確。因此,需要知道運營商最新的號段,如下所示:

各大運營商手機號碼段(新)

中國電信號段

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(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/


這是把所有運營商號段寫在一起的,包括虛擬運營商、物聯網等,大家也可以根據項目需求來寫。

表單字段驗證常用正則表達式

1、姓名

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


2、手機號碼

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


3、座機號碼

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


4、電子郵箱

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


5、身份證號碼
(1)普通校驗

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


(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]$/


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]$/


后6位

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

6、QQ號碼

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



7、郵政編碼

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



8、注冊賬號

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

 

 


————————————————
版權聲明:本文為CSDN博主「itbrand」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/itbrand/article/details/109239620

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM