>  기사  >  백엔드 개발  >  ID 번호의 유효성과 성별을 확인하는 PHP 정규식 방법

ID 번호의 유효성과 성별을 확인하는 PHP 정규식 방법

王林
王林원래의
2023-06-24 09:36:101385검색

신분증번호는 우리나라 거주자의 신원을 확인하는 중요한 상징입니다. 애플리케이션에서는 ID 번호의 유효성과 정확성을 보장하기 위해 정규 표현식을 통해 확인해야 합니다. 이 기사에서는 PHP 정규식을 사용하여 ID 번호의 유효성과 성별을 확인하는 방법을 소개합니다.

1. ID번호의 구성 및 규칙

ID번호는 18자리 또는 17자리 + 1개의 체크코드로 구성됩니다. 그 중 처음 17자리는 신분증 소유자 정보이고, 마지막 1자리는 신분증 번호가 맞는지 확인하는 인증번호입니다.

신분증 번호의 규정은 다음과 같습니다.

  1. 처음 6자리는 지역번호로 신분증 소지자가 위치한 행정구역을 나타냅니다.
  2. 다음 8자리는 생년월일 코드로 신분증 소지자의 생년월일을 나타냅니다. 형식은 6자리 숫자로, 앞의 두 자리는 태어난 연도를, 뒤의 네 자리는 태어난 달과 일을 나타냅니다.
  3. 17번째 자리는 성별 코드로, 홀수는 남성, 짝수는 여성을 의미합니다.
  4. 마지막 숫자는 ID 번호가 올바른지 확인하는 데 사용되는 체크 코드입니다.

2. 정규식을 사용하여 ID 번호를 확인하세요

정규식을 사용하면 ID 번호의 유효성을 쉽게 확인할 수 있습니다. 다음은 간단한 정규식 예입니다.

$pattern = '/^[1-9]d{5}(19|20)d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])d{3}[0-9Xx]$/';
$code = '110101199001011234';
if (preg_match($pattern, $code)) {
    echo '身份证号码有效';
} else {
    echo '身份证号码无效';
}

이 정규식의 규칙은 ID 카드 번호의 규칙과 일치하며 일부 한정자와 문자 클래스가 사용됩니다. 그 중 ^는 문자열의 시작을 나타내고, $는 문자열의 끝을 나타냅니다. [1-9]는 첫 번째 숫자가 0이 될 수 없음을 의미하고, d{5}는 다음 5자리가 숫자임을 의미합니다. (19|20)은 신분증 소지자의 출생연도가 19 또는 20으로 시작하는 숫자임을 나타냅니다. (0[1-9]|1[012])는 태어난 월 01~12를 나타냅니다. (0[1-9]|12|3[01])은 생년월일이 01-31인 숫자를 나타냅니다. d{3}는 마지막 세 자리 숫자가 임의의 숫자일 수 있음을 의미하고, [0-9Xx]는 마지막 숫자가 숫자 또는 문자 X임을 의미합니다. 이 정규식을 사용하면 ID 번호의 유효성을 쉽게 확인할 수 있습니다.

3. 정규식을 이용해 주민등록번호의 성별을 확인하세요

주민등록번호의 17번째 자리는 주민등록번호의 성별을 나타내며, 홀수는 남성, 짝수는 여성을 나타냅니다. 정규식을 통해 ID 번호의 17번째 자리를 쉽게 추출하고 성별을 확인할 수 있습니다.

다음은 간단한 예입니다.

$pattern = '/^[1-9]d{5}(19|20)d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])(d{3})[0-9Xx]$/';
$code = '110101199001011234';
if (preg_match($pattern, $code, $matches)) {
    $sex = $matches[6] % 2 == 0 ? '女' : '男';
    echo '性别为' . $sex;
} else {
    echo '身份证号码无效';
}

이 정규식은 ID 번호의 17번째 숫자를 캡처하는 데 사용되는 추가 캡처 그룹(d{3})이 있다는 점을 제외하면 이전 정규식과 동일합니다. $matches 변수를 사용하여 캡처된 정보를 가져오고 17번째 위치의 패리티를 기반으로 성별을 결정합니다.

요약하자면, 간단한 정규식을 이용하면 쉽게 주민등록번호의 유효성을 검증하고 성별 정보를 추출할 수 있습니다. 실제 적용에서 보다 엄격하고 상세한 검증 규칙이 필요한 경우 실제 필요에 따라 조정하고 개선할 수 있습니다.

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

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