golang에서 정규 표현식을 사용하여 입력이 법적 신원 문서 번호인지 확인하세요.

WBOY
풀어 주다: 2023-06-24 11:48:47
원래의
1420명이 탐색했습니다.

ID 번호 확인이 필요한 애플리케이션 시나리오의 경우 정규식을 사용하여 입력이 합법적인지 확인하는 것이 일반적입니다. Golang은 정규식 일치 작업을 수행하는 데 사용할 수 있는 regexp 패키지를 제공합니다. 이 글에서는 golang에서 정규식을 사용하여 입력된 ID 번호가 올바른지 확인하는 방법을 소개합니다.

1. ID 카드 번호 규칙

ID 카드 번호는 18자리와 체크 코드로 구성됩니다. 구체적인 형식은 다음과 같습니다.

숫자 1~2: 국가가 지정한 통계 코드로 표시됩니다.

3~4번째 숫자: 성 및 자치구 코드로 지정된 시를 나타냅니다.

5~6번째 숫자: 시, 군, 구 코드로 지정된 구 및 카운티를 나타냅니다.

7~14번째 숫자: 태어난 연도를 나타냅니다. 월과 일, 예:

19900907表示生于1990年9月7日
로그인 후 복사

15~17번째 숫자: 일련번호를 나타내며, 일반적으로 홀수입니다.

18번째 숫자: 생성된 검사 코드를 나타냅니다. ISO 7064:1983.MOD 11-2의 규정에 따라.

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

golang에서는 정규식을 사용하여 ID 번호가 규칙을 준수하는지 확인할 수 있습니다. 구체적인 정규식은 다음과 같습니다.

^([1-9]d{5})(19|20)d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|(3[0-1]))d{3}[0-9xX]$
로그인 후 복사

여기서 ^는 일치하는 문자열의 시작 위치를 나타내고 $는 일치하는 문자열의 끝 위치를 나타냅니다. ([1-9]d{5})는 ID 번호의 처음 6자리, 즉 시/도 코드가 일치한다는 의미입니다. (19|20)d{2}는 ID 번호와 일치하는 생년월일을 나타냅니다. 여기서 19와 20은 연도의 처음 두 자리를 나타내고 d{2}는 연도의 마지막 두 자리를 나타냅니다. ((0[1-9])|(1[0-2]))는 월과 일치하고, ((0-2)|(3[0-1]))은 일과 일치하며, d{3}[0- 9xX] 시퀀스 코드와 검사 코드를 일치시키십시오. 여기서 x와 X는 검사 코드가 숫자 0-9 또는 문자 X(대문자 및 소문자 모두)일 수 있음을 나타냅니다.

golang에서는 정규식 일치를 위해 regexp 패키지를 사용할 수 있습니다. 구체적인 사용법은 다음과 같습니다.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    var id string = "110101199003079077"

    // 定义正则表达式
    reg := `^([1-9]d{5})(19|20)d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|(3[0-1]))d{3}[0-9xX]$`

    // 编译正则表达式
    rgx := regexp.MustCompile(reg)

    // 进行匹配
    match := rgx.Match([]byte(id))

    if match {
        fmt.Println("身份证号码合法")
    } else {
        fmt.Println("身份证号码非法")
    }
}
로그인 후 복사

위 코드에서는 ID 카드 번호 id를 먼저 정의한 후 regexp 패키지의 Compile 함수를 사용하여 정규 표현식을 일반 개체 rgx로 컴파일합니다. 마지막으로 rgx.Match 함수를 호출하여 ID 번호를 일치시킵니다. 일치에 성공하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

3. 요약

위의 소개를 통해 golang에서 ID 번호의 정당성을 확인하기 위해 정규식을 사용하는 것이 매우 쉽다는 것을 알 수 있습니다. 정규식을 정의한 다음 regexp 패키지를 사용하여 일치를 위한 일반 개체로 컴파일하면 됩니다. 물론 ID 번호 규칙은 시나리오에 따라 일부 변경될 수 있으므로 특정 요구 사항에 따라 정규식을 조정해야 합니다.

위 내용은 golang에서 정규 표현식을 사용하여 입력이 법적 신원 문서 번호인지 확인하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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