Home  >  Article  >  Backend Development  >  How to validate mobile number or landline number format with PHP regular expression

How to validate mobile number or landline number format with PHP regular expression

WBOY
WBOYOriginal
2023-06-24 08:30:062305browse

When developing web applications, it is often necessary to verify whether the mobile phone number or landline number entered by the user is in the correct format. In order to facilitate verification and prompt the user in time when the input is incorrect, we can use regular expressions in PHP to detect whether the format of the number meets the requirements.

The following will introduce how to use PHP regular expressions to verify the mobile phone number or landline number format.

Verify mobile phone number format

The mobile phone number in mainland China is 11 digits, starting with 1. You can use the following regular expression for verification:

$phone_pattern = '/^1d{10}$/';

where:

  • ^ means matching starts from the beginning of the string
  • 1 means it must start with the number 1
  • d means matching any numeric character
  • {10} means matching numeric characters repeated 10 times
  • $ means matching to the end of the string

This regular rule The expression is guaranteed to validate 11-digit numbers and conditions starting with 1. Applying it to PHP code, you can get the following example:

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

// 示例测试
$mobile = '13712341234';
if (check_mobile($mobile)) {
    echo "手机号码格式正确";
} else {
    echo "手机号码格式错误";
}

Verify the landline number format

The landline number format is relatively complex, and the landline number format is different in different regions, such as the landline number in Beijing It is a 10-digit number, starting with the number 1 or 2. The landline number in Shanghai is an 8-digit or 9-digit number, starting with the number 2, etc. In order to implement a universal landline number format verification function, different regular expressions need to be written for different landline number formats.

The following uses landline numbers in Beijing and Shanghai as examples to demonstrate how to write the corresponding regular expressions.

Beijing area landline number

Beijing’s landline number starts with the number 1 or 2, followed by 8 digits. You can use the following regular expression for verification:

$tel_pattern = '/^(010|02d)d{8}$/';

where:

  • ^ means matching from the beginning of the string
  • (010|02d) means 010 or 02 The three digits at the beginning, | means or, d means matching any numeric characters
  • d{8} means matching 8 numeric characters
  • $ means matching to the end of the string

This regular expression can ensure the verification of the condition that the number starts with 1 or 2 and is followed by 8 digits. Applying this to PHP code, you can get the following example:

function check_tel_beijing($tel) {
    $tel_pattern = '/^(010|02d)d{8}$/';
    if (preg_match($tel_pattern, $tel)) {
        return true;
    } else {
        return false;
    }
}

// 示例测试
$tel = '01012345678';
if (check_tel_beijing($tel)) {
    echo "座机号码格式正确";
} else {
    echo "座机号码格式错误";
}

Shanghai area landline number

The landline number in Shanghai starts with the number 2, followed by 8 or 9 digits. You can use the following regular expression for verification:

$tel_pattern = '/^2d{7}(?:d{1})?$/';

where:

  • ^ means matching starts from the beginning of the string
  • 2 means it must start with the number 2
  • d{7} means matching 7 numeric characters
  • (?:d{1})? means matching 1 numeric character, ?: means a non-capturing group, ? means the group is optional
  • $ means matching to the end of the string

This regular expression can ensure the verification of the condition that starts with the number 2 and is followed by 8 or 9 digits. Applying it to PHP code, you can get the following example:

function check_tel_shanghai($tel) {
    $tel_pattern = '/^2d{7}(?:d{1})?$/';
    if (preg_match($tel_pattern, $tel)) {
        return true;
    } else {
        return false;
    }
}

// 示例测试
$tel = '0211234567';
if (check_tel_shanghai($tel)) {
    echo "座机号码格式正确";
} else {
    echo "座机号码格式错误";
}

Summary

Using PHP regular expressions to verify mobile phone number and landline number formats can effectively improve user input data in web applications accuracy. This article introduces how to write regular expressions for verification, which is suitable for most common mobile phone number and landline number formats, and can also be modified and extended as needed.

The above is the detailed content of How to validate mobile number or landline number format with PHP regular expression. 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