ID번호는 생년월일 등 개인 신원 정보가 포함된 유일한 중국 국민의 신원 증명서입니다. 실제 응용 프로그램에서는 ID 번호의 연령 범위를 확인해야 하는 경우가 있습니다. PHP 정규 표현식은 이를 구현하는 매우 편리한 방법입니다. 이 기사에서는 PHP 정규 표현식을 사용하여 ID 번호의 연령 범위를 확인하는 방법을 소개합니다.
1. ID 카드 번호 구조
ID 카드 번호는 17자리로 구성되며 6개 부분으로 구성됩니다. 처음 두 자리는 도 코드, 가운데 네 자리는 시 및 군 코드, 다음 두 자리는 다음 두 자리는 월 코드, 다음 두 자리는 날짜 코드, 마지막 자리는 확인 코드입니다. 구체적인 구조는 다음과 같습니다.
xxxxxxxxxxxxxxXY
그 중 처음 17자리는 ID 번호의 주요 부분인 11643-1999 "시민 신분증 번호"입니다.
2. 기본 개념
주민등록번호의 연령 확인을 위해 주민등록번호에서 생년월일을 가져온 후 이를 현재 날짜와 비교하여 주민등록번호 보유자의 나이를 계산할 수 있습니다. 구체적인 확인 단계는 다음과 같습니다.
1. 정규식을 통해 ID 카드 번호로 생년월일을 가져옵니다.
2. 생년월일을 타임스탬프로 변환합니다.
4. 현재 타임스탬프와 출생 타임스탬프를 비교하여 신분증 소지자의 나이를 알아냅니다.
5. 나이가 지정된 범위 내에 있는지 확인합니다.
여기서 정규식의 괄호는 일치하는 하위 문자열을 나타내는 데 사용되며, 괄호 안의 d는 숫자를 나타내고, d{6}은 일치하는 6자리 숫자를 나타내고, d{4}는 일치하는 4자리 숫자를 나타냅니다. 4. PHP 코드 구현위에 제공된 정규 표현식을 사용하면 preg_match 함수를 통해 생년월일을 얻을 수 있습니다. 구체적인 구현 코드는 다음과 같습니다.
function getAgeByIdCard($idCard, $minAge, $maxAge) { // 通过正则表达式获取身份证号码的出生年月日 if (preg_match('/(d{6})(d{4})(d{2})(d{2})d{2}(d)(d|x)/i', $idCard, $matches)) { list(,$birthYear,$birthMonth,$birthDay) = $matches; // 将出生年月日转化为时间戳 $birthTimestamp = strtotime("{$birthYear}-{$birthMonth}-{$birthDay}"); // 计算当前时间戳 $currentTimestamp = time(); // 计算身份证持有者的年龄 $age = floor(($currentTimestamp - $birthTimestamp) / 31536000); // 判断年龄是否在指定范围内 if ($age >= $minAge && $age <= $maxAge) { return true; } } return false; } // 身份证号码 $idCard = "320123199001011234"; // 最小年龄 $minAge = 18; // 最大年龄 $maxAge = 60; // 验证身份证号码是否在指定年龄范围内 if (getAgeByIdCard($idCard, $minAge, $maxAge)) { echo "身份证号码通过验证"; } else { echo "身份证号码不在指定年龄范围内"; }
위 내용은 PHP 정규식을 사용하여 ID 번호의 연령대를 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!