golang에서 정규식을 사용하여 입력이 중국 본토 주민 ID 번호인지 확인하는 방법

PHPz
풀어 주다: 2023-06-24 08:49:00
원래의
828명이 탐색했습니다.

Golang에서 정규식을 사용하여 입력이 중국 본토 주민 ID 번호인지 확인하는 것은 Go 언어의 내장 정규식 라이브러리 regexp에 있는 정규식 일치 함수 MatchString()을 사용하여 수행할 수 있습니다.

중국 본토의 주민등록번호는 18자리와 문자로 구성됩니다. 처음 17자리는 지역번호와 생년월일이고 마지막 자리는 체크코드입니다. 입력된 ID 번호가 유효한지 확인하려면 ID 번호의 형식 요구 사항을 충족하는지 확인해야 합니다.

다음은 입력이 ID 번호의 형식 요구 사항을 충족하는지 여부를 일치시키는 데 사용되는 기본 정규식입니다.

^([1-9]\d{5})(\d{4})(0[1-9]|1[0-2])([0-2][1-9]|[1-3]\d|4[0-6]|5[0-2])(\d{3})(\d|[Xx])$
로그인 후 복사

그중 ^는 입력 문자열의 시작을 나타내고, $는 입력 문자열의 끝을 나타내며, ( )는 다음과 같은 일치하는 부분을 나타냅니다.

  • [1-9]d{5}: 지방 지역 번호(숫자 1-6)를 나타냅니다. 첫 번째 숫자는 1~9 사이의 숫자여야 하며 다음 5자리는 임의의 숫자일 수 있습니다.
  • d{4}: 태어난 연도를 나타냅니다(7~10번째 숫자).
  • (0[1-9]|1[0-2]): 태어난 달(11~12번째 숫자)을 나타냅니다. 즉, 01~12 사이의 숫자여야 합니다.
  • (0-2|[1-3]d|4[0-6]|5[0-2]): 생년월일(13~14번째 숫자)을 나타내며 01~31 사이의 숫자여야 합니다. .
  • d{3}: 개인 일련 번호(15~17자리)를 나타내며 무작위로 할당된 3자리 숫자입니다.
  • (d|[Xx]): 검사 코드(18번째 숫자)를 나타내며 숫자 또는 대문자 "X"일 수 있습니다.

위의 정규식을 코드에 작성합니다.

func isIDCardNumber(str string) bool {
    regIDCard := "^([1-9]\d{5})(\d{4})(0[1-9]|1[0-2])([0-2][1-9]|[1-3]\d|4[0-6]|5[0-2])(\d{3})(\d|[Xx])$"
    reg := regexp.MustCompile(regIDCard)
    return reg.MatchString(str)
}
로그인 후 복사

위의 코드에서 Regexp.MustCompile() 메서드를 사용하여 정규식을 Regexp 인스턴스로 컴파일한 다음 reg.MatchString() 메서드를 사용하여 일치시킵니다. 입력 문자열 .

마지막으로 프로그램에서 이 함수를 사용하여 입력이 유효한 ID 번호인지 확인합니다.

func main() {
    idCardNumber := "411281199601017891" // 合法身份证号码
    if isIDCardNumber(idCardNumber) {
        fmt.Println("输入是有效的身份证号码")
    } else {
        fmt.Println("输入不是有效的身份证号码")
    }
}
로그인 후 복사

간단히 말하면 Golang의 정규식을 사용하여 중국 본토 주민 ID 번호를 확인하면 합법성과 정확성을 보장할 수 있습니다. 보다 완전한 애플리케이션을 개발하기 위한 기반입니다.

위 내용은 golang에서 정규식을 사용하여 입력이 중국 본토 주민 ID 번호인지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿