Home >Backend Development >PHP Tutorial >PHP regular expression to verify the check code of ID card number

PHP regular expression to verify the check code of ID card number

WBOY
WBOYOriginal
2023-06-24 10:42:101429browse

When developing using PHP, it often involves verifying the ID number entered by the user to ensure the accuracy and completeness of the data. The verification code in the ID number is a very important part, it can help us determine whether the ID number is legal. Therefore, when using PHP to verify the ID number, we need to understand how to use regular expressions to verify the check code in the ID number.

1. What is the verification code of the ID number?

The ID number is an important document that every Chinese citizen must have. It consists of 18 digits and letters. Among them, the first 17 digits are the main part of the ID card number, consisting of 6 digits indicating the date of birth, 6 digits indicating the place of household registration, and 4 digits indicating the sequence code; the 18th digit is the check code in the ID card number , which is a number or letter calculated from the first 17 digits according to certain rules, and is used to verify the accuracy of the ID number.

2. Calculation method of ID card number check code

The calculation method of ID card number check code is very complicated and requires the use of some mathematical principles and algorithms to calculate. I won’t give a detailed introduction here. You can find detailed calculation methods through Internet search.

3. Use regular expressions to verify the check code of the ID number

When using PHP to verify the ID number, we can use regular expressions to verify the ID number. Check code. The following is a simple regular expression:

/^(d{17})([0-9x])$/i

In this regular expression, ^ represents the starting position, (d{17}) represents 17 numbers, ([0-9x]) represents 1 number or letter x or letter X, and $ represents the end position. i means case-insensitive.

Using this regular expression can easily verify whether the first 17 digits of the ID number are legal and obtain the verification code of the ID number. The following is a sample code:

function checkIDCard($idCard) {

    // 正则表达式验证身份证号码的格式
    $regex = '/^(d{17})([0-9x])$/i';

    if (!preg_match($regex, $idCard, $matches)) {
        return false;
    }

    // 获取身份证号码前17位
    $idCard17 = $matches[1];

    // 获取身份证号码最后一位校验码
    $idCard18 = $matches[2];

    // TODO:计算身份证号码的校验码,然后与输入的校验码进行比对,判断该身份证号码是否合法

    return true;
}

In the above code, the preg_match function is used to perform regular expression verification on the ID number. If the verification is passed, a $matches array will be obtained, where $matches[1] is the first 17 digits of the ID number, and $matches[2] is the last digit of the verification code of the ID number. Next, we need to calculate the check code of the ID number and compare it with the entered check code to determine whether the ID number is legal.

4. Summary

The ID number is a very important document. Using PHP to verify the ID number is a very common requirement in development. When verifying the ID number, the verification code in the ID number needs to be calculated and compared to ensure the accuracy of the ID number. Through the verification of regular expressions, the first 17 digits of the ID number and the check code can be easily obtained for further verification.

The above is the detailed content of PHP regular expression to verify the check code of ID card number. 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