Home >Backend Development >PHP Tutorial >How to use PHP regular expression to verify whether the input string is in the correct mobile phone number format

How to use PHP regular expression to verify whether the input string is in the correct mobile phone number format

PHPz
PHPzOriginal
2023-06-24 11:49:571978browse

In the era of mobile Internet, mobile phone numbers have become an indispensable means of communication for people. At the same time, the formats of mobile phone numbers are becoming more and more diverse. How to verify whether the entered mobile phone number is in the correct format through PHP regular expressions? This article will introduce in detail the PHP regular expression to verify the mobile phone number format.

1. Identify the format of the mobile phone number

Before we start to introduce the method of verifying the format of the mobile phone number using PHP regular expressions, we need to identify the format of the mobile phone number first. Mobile phone numbers in mainland China are generally divided into 11 digits. The common formats are as follows:

  1. Mobile phone numbers start with 13, 14, 15, 16, 17, 18, 19, followed by 9 number.
  2. China Mobile mobile phone number format is 139, 138, 137, 136, 135, 134, 159, 158, 157, 150, 151, 152, 147, 182, 183, 184, 187, 188, 178, 198 and so on.
  3. China Unicom mobile phone number format starts with 130, 131, 132, 155, 156, 185, 186, 145, 176, 166, etc.
  4. China Telecom’s mobile phone number format starts with 133, 153, 180, 181, 189, 177, 173, etc.

2. Use regular expressions to verify the mobile phone number format

To use PHP regular expressions to verify the mobile phone number format, you need to use the preg_match() function. This function accepts two parameters, the first parameter is the regular expression, and the second parameter is the string to be matched.

The following introduces several commonly used regular expressions:

  1. Accepts all 11-digit numbers starting with 1, regardless of China Mobile, China Unicom, and Telecom: /^1[0-9 ]{10}$/.

Explanation: ^ means the beginning, $ means the end, [0-9] means any number from 0-9, {10} means the number is repeated 10 times, that is, there are 11 digits in total.

Example:

$pattern = '/^1[0-9]{10}$/';
$mobile_number = '13888888888';
if(preg_match($pattern, $mobile_number)){
    echo '手机号码格式正确!';
}else{
    echo '手机号码格式不正确!';
}

Output:

手机号码格式正确!
  1. Accept all mobile phone numbers:/^(13[4-9]|14[7-8]| 15[0-2,7-9]|166|17[2-8]|18[2-4,7-8]|19[8,9])d{8}$/.

Explanation: | represents an OR relationship, [] represents selecting one of the characters, - represents a range, d represents any number, {8} represents the number repeated 8 times, that is, a total of 11 digits.

Example:

$pattern = '/^(13[4-9]|14[7-8]|15[0-2,7-9]|166|17[2-8]|18[2-4,7-8]|19[8,9])d{8}$/';
$mobile_number = '13988888888';
if(preg_match($pattern, $mobile_number)){
    echo '手机号码格式正确!';
}else{
    echo '手机号码格式不正确!';
}

Output:

手机号码格式不正确!
  1. Accept all China Unicom mobile phone numbers:/^(13[0-2]|15[5-6]| 17[56]|18[5-6]|145|166)d{8}$/.

Explanation: Same as above.

Example:

$pattern = '/^(13[0-2]|15[5-6]|17[56]|18[5-6]|145|166)d{8}$/';
$mobile_number = '13188888888';
if(preg_match($pattern, $mobile_number)){
    echo '手机号码格式正确!';
}else{
    echo '手机号码格式不正确!';
}

Output:

手机号码格式正确!
  1. Accept all telecommunications mobile phone numbers:/^(133|153|170[0-2]|173|177 |180|181|189|199)d{8}$/.

Explanation: Same as above.

Example:

$pattern = '/^(133|153|170[0-2]|173|177|180|181|189|199)d{8}$/';
$mobile_number = '17012345678';
if(preg_match($pattern, $mobile_number)){
    echo '手机号码格式正确!';
}else{
    echo '手机号码格式不正确!';
}

Output:

手机号码格式正确!

3. Implement mobile phone number format verification in the program

The following is a complete PHP program for Verify whether the entered mobile phone number meets the mobile phone number format requirements of mainland China:

function validate_mobile_number($mobile_number){
    $reg_exs = [
            '/^1[0-9]{10}$/',//接受所有以1开头的11位数字,不区分移动、联通、电信
            '/^(13[4-9]|14[7-8]|15[0-2,7-9]|166|17[2-8]|18[2-4,7-8]|19[8,9])d{8}$/',//接受所有移动手机号码
            '/^(13[0-2]|15[5-6]|17[56]|18[5-6]|145|166)d{8}$/',//接受所有联通手机号码
            '/^(133|153|170[0-2]|173|177|180|181|189|199)d{8}$/'//接受所有电信手机号码
            ];
    foreach($reg_exs as $reg_ex){
        if(preg_match($reg_ex, $mobile_number)){
            return true;
        }
    }
    return false;
}

$mobile_number = '13312345678';

if(validate_mobile_number($mobile_number)){
    echo '手机号码格式正确!';
}else{
    echo '手机号码格式不正确!';
}

Output:

手机号码格式正确!

IV. Summary

This article introduces the use of PHP regular expressions to verify input Method to check whether the string is in the correct mobile phone number format. In actual development, we can select appropriate regular expressions as needed and embed them into the program to verify the mobile phone number format. I hope this article can help everyone better master the use of PHP regular expressions.

The above is the detailed content of How to use PHP regular expression to verify whether the input string is in the correct mobile phone number format. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn