>  기사  >  백엔드 개발  >  ID 번호의 형식을 확인하는 PHP 정규식

ID 번호의 형식을 확인하는 PHP 정규식

王林
王林원래의
2023-06-24 11:20:081739검색

신분증 번호는 우리 생활에 있어서 매우 중요한 신분증이기도 하며, 각종 사업 거래에서 자주 작성해야 하는 필수 정보이기도 합니다. 따라서 웹 애플리케이션을 개발할 때 ID 번호가 올바른지 확인하는 것이 매우 중요합니다.

PHP에서는 정규식을 통해 ID 번호의 형식을 확인할 수 있습니다. 아래에서는 정규식을 사용하여 ID 번호의 형식을 확인하는 방법을 자세히 소개합니다.

1. 신분증 번호 형식

신분증 번호는 18자리와 문자 X로 구성됩니다. 앞 17자리는 신분증의 지역번호와 생년월일 코드이고, 마지막 자리는 신분증의 인증번호입니다.

ID 번호 형식은 다음과 같습니다.

第1-6位是身份证的地区编码,由国家统计局制定;
第7-14位是身份证的出生日期,格式为YYYYMMDD;
第15-17位是身份证的顺序码,表示在当天出生的第几个人;
第18位是身份证的校验码,用于校验身份证号码的合法性。

2. 정규식을 사용하여 ID 번호 형식을 확인합니다.

정규식을 사용하여 ID 번호 형식을 확인하려면 기본 구문을 이해해야 합니다. 정규식 중.

PHP에서는 preg_match 함수를 사용하여 정규식 일치를 구현합니다. 이 함수는 두 개의 매개변수를 받습니다. 첫 번째 매개변수는 일치시킬 정규식이고 두 번째 매개변수는 일치시킬 문자열입니다. 일치에 성공하면 함수는 1을 반환하고 그렇지 않으면 0을 반환합니다.

ID 번호를 확인하는 정규식은 다음과 같습니다.

/^(d{6})(19|20)(d{2})([01]d)([0123]d)(d{3})(d|X)$/i

정규식의 의미는 다음과 같습니다.

/^:表示正则表达式的起始位置。
(d{6}):表示前6位数字是身份证的地区编码。
(19|20):表示身份证的出生年份必须是19或20开头。
(d{2}):表示身份证的出生月份,为两位数字。
([01]d):表示身份证的出生日,为01-31之间的数字。由于月份和天数可能不是两位数,因此需要使用[01]d的形式,只要保证第一位是0或1就行了。
([0123]d):表示身份证的出生年份,为01-12之间的数字。
(d{3}):表示身份证的顺序码,由三位数字组成。
(d|X):表示身份证的校验码,只能是数字或字母X。
$/i:表示正则表达式的结束位置。

다음은 PHP 코드 예입니다.

function check_id_card($id_card){
    $preg = "/^(d{6})(19|20)(d{2})([01]d)([0123]d)(d{3})(d|X)$/i";
    if(preg_match($preg, $id_card)){
        return true;
    }else{
        return false;
    }
}

이 함수는 $id_card 매개변수를 허용합니다. 확인할 ID 번호를 나타냅니다. preg_match 함수와 위의 정규식을 사용하여 일치를 수행하면 함수는 true를 반환하고, 그렇지 않으면 false를 반환합니다.

위는 정규식을 사용하여 ID 번호의 형식을 확인하는 방법입니다. 웹 애플리케이션을 개발할 때 이 함수를 공용 함수 라이브러리에 캡슐화하여 여러 페이지에서 쉽게 호출할 수 있습니다. 이는 개발 효율성을 향상시키고 웹 애플리케이션의 보안을 보장할 수 있습니다.

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

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