>백엔드 개발 >PHP 튜토리얼 >주민등록번호의 생일 정보를 확인하는 PHP 정규식

주민등록번호의 생일 정보를 확인하는 PHP 정규식

王林
王林원래의
2023-06-24 14:22:031490검색

신분증 번호는 우리가 일상생활에서 자주 사용하는 신원 증명 도구이며, 그 안에 담긴 생일 정보도 매우 중요합니다. PHP를 사용하여 ID 번호를 확인할 때 생일 정보가 올바른지 확인해야 하는 경우가 종종 있습니다. 이번 글에서는 PHP 정규식을 사용하여 ID 번호의 생일 정보를 확인하는 방법을 소개합니다.

1. 아이디 번호의 기본 형식

아이디 번호는 18자리 숫자와 문자로 구성되며, 마지막 자리는 숫자, 문자 모두 가능하며 대문자나 소문자도 가능합니다. 처음 17자리는 신분증의 주요 부분으로 신분증의 지역, 생년월일, 성별 등의 정보를 담고 있습니다. 주민등록번호의 기본 형식은 다음과 같습니다.

지역번호 6자리 + 생년월일 8자리 + 일련번호 3자리 + 체크코드 1자리

그 중 생년월일은 순수 숫자로 되어 있습니다. 19880101과 같은 형식이므로 ID 카드 번호의 18자리 문자열은 정규식을 통해 다음 네 부분으로 나눌 수 있습니다.

$region_code // 6자리 지역 코드
$birthday // 8자리 연도 , 생년월일
$sequence_code // 3자리 Sequence code
$verify_code // 1자리 인증코드

2. 생일 정보를 확인하는 PHP 정규 표현식

ID번호의 생일 정보를 확인할 때 필요합니다. 정규식을 사용하여 생년월일을 추출한 다음 지정된 형식을 따르는지 확인합니다.

ID번호에서 생년월일의 위치가 7일부터 14일까지이므로 substr() 함수를 이용하여 8자리 문자열을 추출한 후 정규식을 이용하여 검증할 수 있습니다.

다음은 태어난 연월일을 확인하는 정규식입니다.

$birthday_pattern = '/^(19d{2}|20d{2})(0[1-9]|1[012] )(0[1 -9]|[12]d|3[01])$/';

그 중:

^: 문자열의 시작 부분과 일치함을 나타냅니다
(19d{2}|20d{2} ): 일치하는 19XX 또는 20XX를 나타냅니다. 연도
(0[1-9]|1[012]): 월 01-12
(0[1-9]|[12]d|3[01])과 일치함을 의미합니다. : 01~31일 일치를 의미
$: 일치하는 문자열의 끝을 나타냄

위 정규식과 ID번호 중 생년월일 8자리가 일치하면 일치에 성공하면 생일 정보라는 의미입니다. 합법적입니다.

다음은 전체 PHP 코드 예입니다.

function verify_birthday($id_card)
{

$birthday_pattern = '/^(19d{2}|20d{2})(0[1-9]|1[012])(0[1-9]|[12]d|3[01])$/';

$birthday_string = substr($id_card, 6, 8);

if (preg_match($birthday_pattern, $birthday_string)) {
    return true;
} else {
    return false;
}

}

이 함수를 사용하여 ID 번호를 확인할 때 ID 번호 문자열만 전달하면 됩니다.

if (validate_birthday('440524199312220058')) {

echo '生日信息正确';

} else {

echo '生日信息错误';

}

위의 방법을 통해 주민등록번호의 생일정보가 적법한지 빠르고 정확하게 검증하여 유효성을 확보할 수 있습니다. ID 번호 성별입니다.

위 내용은 주민등록번호의 생일 정보를 확인하는 PHP 정규식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.