>  기사  >  백엔드 개발  >  PHP에서 정규식을 사용하여 ID 카드만 일치시키는 방법

PHP에서 정규식을 사용하여 ID 카드만 일치시키는 방법

PHPz
PHPz원래의
2023-03-21 19:12:331441검색

정규식은 프로그램에서 일반적으로 사용되는 도구로 일련의 규칙을 사용하여 텍스트를 일치시키고 수정할 수 있습니다. PHP에서는 정규식의 사용이 매우 중요하며 주로 문자열 일치, 교체 및 추출 작업에 사용됩니다.

모든 정규식 중에서 ID 번호 일치는 전형적인 문제입니다. PHP에서는 일련의 정규식을 통해 ID 번호를 일치시킬 수 있습니다.

먼저 ID번호의 구조를 이해해야 합니다. 국가 표준 '시민 식별 번호'(GB 11643-1999)에 따르면 ID 번호는 총 18자리입니다. 처음 17자리는 지역 번호와 생년월일 코드이고, 18번째 자리는 검사 코드입니다.

그 중 처음 6자리는 지역코드로, 성, 자치구, 중앙직할시 등의 약칭을 포함합니다. 7~14번째 숫자는 YYYYMMDD 형식의 생년월일 코드입니다. 15~17번째 자리는 일련번호, 즉 같은 지역에서 같은 날 태어난 사람들의 일련번호입니다. 17번째 자리의 홀수는 남자, 짝수는 여자를 나타냅니다. 마지막 숫자는 국가 표준에 따라 계산된 숫자인 검사 코드입니다.

ID 번호의 구조에 따라 다음과 같은 PHP 정규식을 작성할 수 있습니다.

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

위 정규식에서

  • ^은 이 정규식으로 시작하여 일치하는 것을 의미합니다.
  • ()는 그룹을 의미합니다.
  • [1-9]는 1부터 9까지의 숫자를 나타냅니다.
  • d는 [0-9]와 동일하게 임의의 숫자를 나타냅니다.
  • {5}는 5번 반복되는 이전 요소를 나타냅니다.
  • |는 또는
  • [ 12]를 나타냅니다. 1 또는 2를 나타냅니다.
  • $ 이 정규식으로 일치가 종료됨을 나타냅니다.
  • i 대소문자를 구분하지 않음을 나타냅니다.

마지막 검사 코드의 일치는 특별합니다. X가 될 수도 있으므로 (d|X)를 사용하여 표현합니다.

preg_match 함수를 사용하여 ID 번호를 일치시킵니다. 코드는 다음과 같습니다.

$pattern = '/^([1-9]\d{5})(19\d{2}|20\d{2})(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i';
$id_card = '11010119880101001X';
if (preg_match($pattern, $id_card)) {
   echo '匹配成功';
} else {
   echo '匹配失败';
}

이 예에서는 $pattern 및 $id_card 두 변수가 preg_match 함수에 매개 변수로 전달됩니다. 일치가 성공하면 "일치 성공"이 출력되고, 그렇지 않으면 "일치 실패"가 출력됩니다.

간단히 말하면, PHP 정규식은 ID 번호와 같은 복잡한 문자열을 일치시키는 데 사용할 수 있는 매우 강력한 도구입니다. 이 기사를 통해 정규식을 사용하여 PHP에서 ID 번호를 일치시키는 방법을 익혀야 합니다.

위 내용은 PHP에서 정규식을 사용하여 ID 카드만 일치시키는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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