The ID number is an important document that people often use in daily life, and the verification of the last check code in the ID number is an important part of whether the ID number is legal. When using PHP programming, we can use regular expressions to verify the check code in the ID number to ensure the validity of the ID number. The following will introduce the method of verifying the check code of the ID card number using PHP regular expressions.
First of all, we need to understand the format of ID number. The ID card number consists of 18 digits and letters, of which the first 17 digits represent province, city, county, date of birth and other information, and the last digit is a check code. The calculation rules of the check code are as follows:
With the above basic knowledge, we can write regular expressions to verify ID numbers. The following is a sample code:
function checkIDCard($id_card){ $pattern = '/^d{6}(19|20)d{2}(0d|1[0-2])([0-2]d|3[0-1])d{3}[0-9X]$/'; if(preg_match($pattern, $id_card)){ $wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); $ai = str_split(substr($id_card, 0, 17)); $n = 0; for($i=0; $i<17; $i++){ $n += $wi[$i] * $ai[$i]; } $c = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); $check_code = $c[$n % 11]; return $check_code == substr($id_card, -1); } return false; } $id_card = '33010219950917413X'; if(checkIDCard($id_card)){ echo '身份证号码校验成功'; }else{ echo '身份证号码校验失败'; }
In the above regular expression, d means matching numbers, {6} means matching 6 times, (19|20)d{2} means matching numbers starting with 19 or 20 4 digits, (0d|1[0-2]) means matching the month from 01 to 12, ([0-2]d|3[0-1]) means matching the date from 01 to 31, d{3} means Match three more numbers, [0-9X]$ means it ends with a number or X. In this way, the ID number can be effectively matched.
Finally, we can test whether our code works. We can change the verification code of the ID card number to check whether the verification function of the code is normal. For example:
$id_card = '330102199509174133';
or:
$id_card = '330102199509174139';
The check codes of these two ID numbers are wrong and should not pass the verification. And when we run the code, we will see that the ID number verification failure result is output, proving that our code can work normally.
In short, the method of using PHP regular expression to verify the check code of the ID number is relatively simple. You only need to write an appropriate regular expression and related functions to easily complete the verification of the ID number. Verification work.
The above is the detailed content of How to verify the check code of the ID card number using PHP regular expression. For more information, please follow other related articles on the PHP Chinese website!