手機號正則表達式匹配規則大全

一、11位手機號正則表達式中的數字和格式

手機號目前採用11位數字作為唯一標識,其中第一位數字為1。如果希望匹配國內所有手機號,可以使用如下代碼:

/^1[3|4|5|6|7|8|9][0-9]{9}$/

其中^和$分別代表字符串的開始和結尾,中間包含一段由”1″開頭,第二位為3~9之間任意數字,後面加上9位數字的組合,用於匹配所有符合規則的手機號。如下示例代碼將會判斷手機號是否符合規則:

<input type="text" id="test" onchange="checkPhoneNumber()">
<script type="text/javascript">
    function checkPhoneNumber(){
        var pattern = /^1[3|4|5|6|7|8|9][0-9]{9}$/;
        var phoneNumber = document.getElementById("test").value;
        if (pattern.test(phoneNumber)) {
            alert("手機號格式正確!");
        } else {
            alert("手機號格式錯誤!");
        }
    }
</script>

這段代碼會觸發一個onchange事件,當用戶輸入內容改變時,檢查輸入的手機號是否符合規則並給出相應提示。

二、手機號正則表達式中的擴展匹配規則

除上述規則外,有時候還需要匹配一些特定的手機號碼格式,如座機號碼、大陸或港澳台的手機號碼格式。下面給出一些擴展的正則表達式規則:

1、匹配座機號碼

座機號碼在國內是有一定格式規定的,格式大致如下:

XXXX-XXXXXXX
XXXX-XXXXXXXX
XXXXXXX
XXXXXXXX

其中”X”表示數字。下面的代碼可以匹配以上座機號碼格式:

/^0\d{2,3}-\d{7,8}$|^1[3|4|5|6|7|8|9][0-9]{9}$/ 

其中”|”表示「或者」的意思。在這裡的正則表達式規則中,表示如果數字格式不是XXX-XXXXXXX或XXX-XXXXXXXX或XXXXXXX或XXXXXXXX,那麼就檢查是否是符合手機號規則的11位數字碼。

2、匹配大陸、港澳台以及其他手機號

在國內,大陸、港澳台以及其他地區的手機號碼格式可能不同。下面給出一些參考的正則表達式代碼:

大陸手機:

/^1[3|4|5|6|7|8|9][0-9]{9}$/         

港澳台手機:

/^(00852)?[569]\d{7}$/                 /*香港*/ 
/^(00853)?6\d{7}$/                     /*澳門*/ 
/^(00886)?09\d{8}$/                    /*台灣大陸機*/ 
/^(00886)?\d{10}$/                     /*台灣*/ 

其他地區手機:

/^[1-9]\d{4,10}$/                      /*海外手機*/ 

使用示例:

<input type="text" id="test" onchange="checkPhoneNumber()">
<script type="text/javascript">
    function checkPhoneNumber(){
        var pattern = /^0\d{2,3}-\d{7,8}$|^1[3|4|5|6|7|8|9][0-9]{9}$|^(00852)?[569]\d{7}$|^(00853)?6\d{7}$|^(00886)?09\d{8}$|^(00886)?\d{10}$|^[1-9]\d{4,10}$/;
        var phoneNumber = document.getElementById("test").value;
        if (pattern.test(phoneNumber)) {
            alert("手機號格式正確!");
        } else {
            alert("手機號格式錯誤!");
        }
    }
</script>

三、常見手機號前綴的正則表達式匹配

值得注意的是,目前大多數手機號前綴已被運營商認領,如移動的號碼都是以134、135、136、137、138、139、150、151、152、157、158、159、182、183、184、187、188、198開頭的。因此,我們也可以根據目前常見的手機號前綴制定正則表達式匹配規則。

例如,我們可以編寫代碼用來匹配移動、聯通、電信等主流運營商的手機號碼:

var cmccReg = /^1(3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])\d{8}$/;
var cuccReg = /^1(3[0-2]|4[5]|5[5-6]|6[6]|7[5-7]|8[56])\d{8}$/;
var ctccReg = /^1(3[3]|4[9]|5[3]|7[0]|8[0-1]|8[9]|9[0-9])\d{8}$/;

其中,cmccReg用來匹配中國移動的號碼,cuccReg用來匹配中國聯通的號碼,ctccReg用來匹配中國電信的號碼。如果希望匹配允許的所有手機號碼,可以將以上三個正則表達式用”|”拼接在一起,例如:

var phoneReg = /^(1(3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])|1(3[0-2]|4[5]|5[5-6]|6[6]|7[5-7]|8[56])|1(3[3]|4[9]|5[3]|7[0]|8[0-1]|8[9]|9[0-9]))\d{8}$/;

以上代碼給出了中國移動、中國聯通和中國電信的號碼匹配規則,如果將它們用「|」連成一起,就可以匹配國內主流運營商提供的所有手機號碼。

四、手機號前綴匹配規則的應用

可以在實際開發應用中使用以上給出的正則表達式,例如:

<input type="text" id="test" onchange="checkPhoneNumber()">
<script type="text/javascript">
    function checkPhoneNumber(){
        var phoneReg = /^(1(3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])|1(3[0-2]|4[5]|5[5-6]|6[6]|7[5-7]|8[56])|1(3[3]|4[9]|5[3]|7[0]|8[0-1]|8[9]|9[0-9]))\d{8}$/;
        var phoneNumber = document.getElementById("test").value;
        if (phoneReg.test(phoneNumber)) {
            alert("手機號格式正確!");
        } else {
            alert("手機號格式錯誤!");
        }
    }
</script>

在這個示例中,使用了以上規則來匹配國內的主流運營商提供的所有手機號,自動檢測輸入的手機號碼是否符合要求。

總結

本文從常用的手機號匹配規則入手,給出了多種正則表達式代碼,包括11位手機號正則表達式、座機號碼匹配規則、大陸、港澳台、海外手機和各主流運營商的手機號碼匹配規則,旨在幫助開發人員更好地完成驗證手機號碼的功能。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/246525.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:15
下一篇 2024-12-12 13:15

相關推薦

  • Python正則表達式search()和match()有什麼區別?

    search()和match()都是Python中的正則表達式函數,它們的作用都是在一個字符串中搜索匹配正則表達式的位置,但它們有着不同的使用場景和返回結果。 一、search()…

    編程 2025-04-29
  • Python語法大全解析

    本文旨在全面闡述Python語法,並提供相關代碼示例,幫助讀者更好地理解Python語言。 一、基礎語法 1、Python的注釋方式 # 這是單行注釋 “”” 這是多行注釋,可以注…

    編程 2025-04-29
  • 二級考級舞蹈大全目錄

    本文將從以下多個方面對二級考級舞蹈大全目錄進行詳細闡述。 一、目錄結構 二級考級舞蹈大全目錄主要分為三級,即一級目錄、二級目錄和三級目錄。其中,一級目錄為舞蹈類型,二級目錄為舞蹈名…

    編程 2025-04-29
  • Python命令大全及說明

    Python是一種高級編程語言,由Guido van Rossum於1989年底發明。它具有良好的語法結構和面向對象的編程思想,具有簡潔、易讀、易學的特點,是初學者以及專業開發人員…

    編程 2025-04-29
  • 解析URI編碼規則

    URI(統一資源標識符)是用來標識互聯網上資源的字符串文本標識符,是訪問互聯網資源的地址。在將URI傳送到服務器或瀏覽器時,需要進行特定編碼處理,這個編碼方式就是URI編碼規則。 …

    編程 2025-04-28
  • Python編寫規則用法介紹

    Python作為一種廣泛使用的高級編程語言,其編寫規則的規範性對於提高代碼可讀性、美觀度以及方便調試、維護至關重要。本文將從命名規則、注釋規則、代碼縮進等多個方面進行詳細的闡述,希…

    編程 2025-04-28
  • Python海龜庫代碼大全

    Python海龜庫是Python語言中一個常用的繪圖庫,它提供了一套海龜繪圖的API,使得使用者可以通過編寫相應的代碼來控制海龜的行進路徑,從而實現各種圖形的繪製。本文將以Pyth…

    編程 2025-04-28
  • Python語句大全

    本文將詳細闡述Python語句大全,並給出代碼實例。 一、基本語句 Python基本語句包括賦值語句、條件語句、循環語句等,其中最基礎的是賦值語句。如下: a = 1 b = 2 …

    編程 2025-04-28
  • Python縮進規則用法介紹

    本文將從多個方面對Python的縮進規則進行詳細的闡述。 一、規則解答 Python中縮進是語法的一部分,它決定了程序的結構和邏輯。Python縮進規則要求同一層級的代碼必須保持相…

    編程 2025-04-28
  • Python函數大全表

    Python是一種高級編程語言,被廣泛應用於數據科學、人工智能、Web開發等領域。Python函數大全表是Python標準函數庫的一個大全,包括了Python中所有的標準函數及其用…

    編程 2025-04-27

發表回復

登錄後才能評論