手机号正则表达式匹配规则大全

一、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/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

发表回复

登录后才能评论