PHP正则表达式验证手机号码

PHP正则表达式验证手机号码

在开发一个基于手机号码的应用时,我们需要进行手机号码格式验证。因此,在 PHP 中,使用正则表达式是一种常见的方式。下面,我们将通过实例代码讲解如何使用 PHP 正则表达式验证手机号码。

PHP 正则表达式基础

正则表达式是一种用于匹配文本字符串的表达式。在 PHP 中,我们使用 preg_match 函数实现正则表达式的匹配。preg_match 函数是 PHP 自带的正则表达式函数,用于判断给定的字符串是否符合某个正则表达式。

preg_match 函数基本用法

preg_match 函数的基本用法如下:

preg_match(pattern,subject, $matches);

其中,pattern 参数表示正则表达式,可以是一个字符串或者一组字符组成的一维数组;subject 参数表示需要匹配的字符串;$matches 是一个可选参数,表示匹配到的信息将存储在其中。

preg_match 函数返回值为 int 型,表示匹配到的次数,如果返回值为 0,则表示没有匹配到,如果返回值为 1,则表示匹配到了一次。

接下来,我们将使用 preg_match 函数实现验证手机号码的功能。

PHP 正则表达式验证手机号码

手机的格式不是固定的,根据不同的国家或地区以及不同的运营商,手机号码的格式也有所不同。因此,我们需要使用正则表达式来验证手机号码的格式。

中国大陆手机号码

中国大陆的手机号码通常是以 1 开头,共有 11 位数字,因此,我们可以使用下面这个正则表达式来验证中国大陆的手机号码:

$pattern = '/^1\d{10}$/';

其中,^1 表示以 1 开头;\d 表示数字字符;{10} 表示该字符重复 10 次;$ 表示以数字结尾。这个正则表达式表示匹配以 1 开头、10 位数字结尾的字符串。

实现代码如下:

function isMobile(mobile) {pattern = '/^1\d{10}/';
    if(preg_match(pattern, $mobile)) {
        return true;
    } else {
        return false;
    }
}

我们通过 preg_match 函数验证传递进来的 mobile 是否符合pattern 表达式。

台湾地区手机号码

台湾地区的手机号码通常是以 09 开头,共有 10 位数字,因此,我们可以使用下面这个正则表达式来验证台湾地区的手机号码:

$pattern = '/^09\d{8}$/';

这个正则表达式和上面的正则表达式类似,匹配以 09 开头、8 位数字结尾的字符串。

实现代码如下:

function isMobileTW(mobile) {pattern = '/^09\d{8}/';
    if(preg_match(pattern, $mobile)) {
        return true;
    } else {
        return false;
    }
}

完整代码实现

function isMobile(mobile) {pattern = '/^1\d{10}/';
    if(preg_match(pattern, mobile)) {
        return true;
    } else {
        return false;
    }
}

function isMobileTW(mobile) {
    pattern = '/^09\d{8}/';
    if(preg_match(pattern,mobile)) {
        return true;
    } else {
        return false;
    }
}

结论

使用 PHP 正则表达式可以轻松地验证手机号码的格式。在本文中,我们通过实例代码演示了如何使用正则表达式验证中国大陆和台湾地区的手机号码格式。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程