Home > Article > Backend Development > How to match date of birth in ID number in PHP using regular expressions
The ID number is a very important and sensitive information, which stores a person’s date of birth, gender, place of origin and many other information. It becomes particularly important to use regular expressions in PHP to match the date of birth in the ID number. This article will introduce how to use regular expressions to match the date of birth in the ID card number in PHP from the following three aspects.
1. Format of ID number
The format of ID number has certain regulations and contains the following information:
The ID number has 18 digits in total, of which the first 17 digits are numbers or capital letters, and the last digit may be a number or capital letter X. Therefore, before using regular expressions to match the date of birth in the ID number, you need to understand the format of the ID number.
2. Use of regular expressions
In PHP, use the preg_match function to call regular expressions to match ID numbers. In order to match the date of birth, you need to use brackets () to group the year, month and day of birth, and use the corresponding wildcard character in the regular expression, as follows:
$pattern = '/^d{6}(19|20)d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])d{3}[dX]$/';
where:
^
represents the beginning of the matching string; d{6}
matches the first six province and city information; (19 |20)
Matches the first two digits of the year of birth, limited to 19 or 20; d{2}
Matches the last two digits of the year of birth; (0[1-9]|1[012])
Matches birth month, limited range is 01-12; (0[1-9]|[12] [0-9]|3[01])
Matches the date of birth, the restricted range is 01-31; d{3}
Matches the last three digits of the ID number Code verification; [dX]
matches the last digit of the ID number, which may be a number or capital letter X; $
indicates matching The end of the string. 3. Code Implementation
You can use the preg_match function and the above regular expression to match the ID number, and use brackets to group the date, month and day of birth to obtain. The code is as follows:
$id_card = '34052419951117258X'; // 身份证号码 $pattern = '/^d{6}(19|20)d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])d{3}[dX]$/'; // 正则表达式 if (preg_match($pattern, $id_card, $matches)) { $birth_year = $matches[1] . $matches[2]; // 出生年份 $birth_month = $matches[3]; // 出生月份 $birth_day = $matches[4]; // 出生日期 echo "出生日期:{$birth_year}-{$birth_month}-{$birth_day}"; // 输出 } else { echo "身份证号码格式不正确"; }
The output result of the above code is:
出生日期:1995-11-17
This article introduces the method of using regular expressions to match the date of birth in the ID card number in PHP. You need Pay attention to the writing of regular expressions and the limitations of the ID card number format. As a powerful string matching tool, regular expressions are widely used in PHP.
The above is the detailed content of How to match date of birth in ID number in PHP using regular expressions. For more information, please follow other related articles on the PHP Chinese website!