>  기사  >  백엔드 개발  >  PHP 정규식을 사용하여 신분증 번호를 확인하는 방법

PHP 정규식을 사용하여 신분증 번호를 확인하는 방법

PHPz
PHPz원래의
2023-06-24 12:01:072202검색

PHP는 매우 널리 사용되는 프로그래밍 언어로서 사용자가 입력한 다양한 데이터 형식을 확인하는 데 사용할 수 있는 강력한 정규식 기능을 제공합니다. 그 중에서 ID 번호 확인은 매우 일반적인 요구 사항입니다. 왜냐하면 ID 번호는 유일한 신원 식별자이고 많은 애플리케이션 시나리오에서 엄격한 확인이 필요하기 때문입니다. 이 기사에서는 PHP 정규 표현식을 사용하여 ID 번호를 확인하는 방법을 소개합니다.

1. ID번호 받기

ID번호 인증을 시작하기 전, 사용자가 입력한 ID번호를 받아야 합니다. 이는 양식 제출, API 매개변수 전송 등을 통해 얻을 수 있으며 여기서는 설명하지 않습니다. 우리가 얻은 ID 번호가 $id_number라고 가정합니다.

2. ID 번호 규칙

정규식 확인을 수행하기 전에 먼저 ID 번호 규칙을 이해해야 합니다. 주민등록번호는 18자리와 문자로 구성되며, 앞 17자리는 시·군(구) 및 기타정보를 포함하며, 마지막 자리는 체크코드입니다. 구체적인 규칙은 다음과 같습니다.

1. 첫 번째 1자리와 2자리 숫자는 지방의 행정 구역 코드를 나타냅니다.

2 세 번째와 네 번째 숫자는 도시의 행정 구역 코드를 나타냅니다. 5번째 및 6번째 숫자는 구역(군)의 행정 구역 코드

4를 나타냅니다. 7번째부터 14번째 숫자는 생년월일을 나타냅니다. 예를 들어 701230은 1970년 12월 30일을 나타냅니다. 17번째 숫자는 다음을 나타냅니다: 위치 경찰서 코드

6. 18번째 숫자는 처음 17자리로 계산되는 검사 코드입니다.

위 규칙에 따라 ID 번호의 정규식을 얻을 수 있습니다.

/^[1-9]d{5}(19|20)d{2}((0[1-9]) | (1[0-2]))((0[1-9])|([1-2]d)|(3[0-1]))d{3}[0-9xX]$/

이 정규식을 하나씩 분석해 보겠습니다.

우선, ^는 일치하는 문자열의 시작 위치를 나타내고, $는 일치하는 문자열의 끝 위치를 나타냅니다. 이는 전체 문자열이 ID 번호의 규칙을 준수함을 보장합니다.

다음, [1-9]d{5}는 ID 번호의 처음 6자리를 나타내며, 1부터 9까지의 숫자가 가능하고 그 뒤에 5자리가 옵니다. 실제로는 도, 시, 군(구)의 행정구역 코드입니다.

그러면 (19|20)d{2}는 ID 번호의 처음 8~9자리를 나타내며, 19 또는 20이 될 수 있고 그 뒤에 2자리가 올 수 있습니다. 이는 태어난 연도를 나타냅니다.

다음 ((0[1-9])|(1[0-2]))은 ID 번호의 처음 10~11자리를 나타내며, 01부터 12까지의 숫자일 수 있습니다. 출생.

그러면 ((0[1-9])|([1-2]d)|(3[0-1]))은 ID 번호의 처음 12~13자리를 나타내며, 01~31이 될 수 있습니다. 모든 숫자는 생년월일을 나타냅니다.

다음, d{3}은 해당 지역 경찰서의 코드인 ID 번호의 처음 14~16자리를 나타내며 임의의 3자리가 가능합니다.

마지막으로 [0-9xX]는 ID 번호의 마지막 숫자를 나타내며 0~9 또는 x 또는 X가 될 수 있습니다. 이것이 체크 코드입니다.

3. PHP 정규식 사용

ID 번호의 규칙과 정규식을 이해한 후 PHP의 preg_match 함수를 사용하여 사용자가 입력한 ID 번호를 확인할 수 있습니다. 구체적인 사용법은 다음과 같습니다.

$pattern = '/^[1-9]d{5}(19|20)d{2}((0[1-9])|(1[0-2]))((0[1-9])|([1-2]d)|(3[0-1]))d{3}[0-9xX]$/';
if(preg_match($pattern, $id_number)) {
    echo '身份证号码合法';
} else {
    echo '身份证号码不合法';
}

위 코드에서 $pattern은 방금 정의한 정규식이고 $id_number는 사용자가 입력한 ID 번호입니다. preg_match 함수는 정규식을 통해 사용자가 입력한 ID 번호를 확인하고 일치하는 결과를 반환합니다. 일치에 성공하면 "신분증 번호가 유효합니다."가 출력되고, 일치하지 않으면 "신분증 번호가 올바르지 않습니다."가 출력됩니다.

4. 요약

이 글을 통해 PHP 정규식을 사용하여 ID 번호를 확인하는 방법을 배웠습니다. ID 번호에 대한 규칙은 비교적 복잡하지만, 정규식의 기본 구문과 ID 번호에 대한 규칙을 숙지하면 쉽게 검증을 구현할 수 있습니다. 실제 응용 프로그램에서는 다양한 검증 요구 사항을 충족하기 위해 필요에 따라 자체 정규식을 사용자 정의할 수도 있습니다.

위 내용은 PHP 정규식을 사용하여 신분증 번호를 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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