>  기사  >  백엔드 개발  >  golang에서 정규식을 사용하여 휴대폰 번호 연산자를 확인하는 방법

golang에서 정규식을 사용하여 휴대폰 번호 연산자를 확인하는 방법

WBOY
WBOY원래의
2023-06-24 08:17:491018검색

프로그램을 개발하다 보면 입력한 휴대폰 번호가 합법적인지, 해당 휴대폰 번호가 어느 통신사에 속해 있는지 확인해야 하는 경우가 많습니다. 이 프로세스는 golang의 정규식을 사용하여 쉽게 달성할 수 있습니다. 이 글에서는 golang에서 정규식을 사용하여 휴대전화 번호 사업자를 확인하는 방법을 소개합니다.

1. 휴대폰 번호가 적법한지 확인

golang에서는 정규식을 사용하여 휴대폰 번호가 적법한지 확인할 수 있습니다. 다음은 샘플 코드입니다.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    // 手机号码正则表达式
    mobileExp := `^(1[3-9]d{9})$`

    // 编译正则表达式
    mobileReg := regexp.MustCompile(mobileExp)

    // 测试手机号码
    mobile := "13212345678"
    if mobileReg.MatchString(mobile) {
        fmt.Printf("手机号码 %s 合法
", mobile)
    } else {
        fmt.Printf("手机号码 %s 不合法
", mobile)
    }
}

위 코드에서는 휴대폰 번호에 대한 정규식을 먼저 정의한 후 regexp.MustCompile() 메서드를 사용하여 이를 정규식 객체. 마지막으로 MatchString() 메서드를 사용하여 휴대폰 번호가 유효한지 확인합니다. 인증에 성공하면 "휴대폰 번호 xxx은(는) 합법적입니다"가 출력되고, 그렇지 않으면 "휴대폰 번호 xxx은(는) 불법입니다"가 출력됩니다. regexp.MustCompile()方法将其编译为正则表达式对象。最后使用MatchString()方法验证手机号码是否合法。如果验证通过,则输出“手机号码 xxx 合法”,否则输出“手机号码 xxx 不合法”。

在上述代码中,手机号码的正则表达式为^(1[3-9]d{9})$

위 코드에서 휴대전화번호의 정규식은 ^(1[3-9]d{9})$로, 1로 시작하는 11자리 숫자를 나타냅니다. 그 중 두 번째 자리는 3~9 사이의 숫자이고, 다음 10자리는 어떤 숫자도 될 수 있다. 특정 형식의 휴대폰 번호를 확인하기 위해 필요에 따라 정규식을 수정할 수 있습니다.

2. 휴대폰 번호의 통신사 확인

golang에서는 차이나텔레콤, 차이나유니콤, 차이나모바일의 휴대폰 번호 세그먼트를 이용하여 휴대폰 번호의 통신사를 확인할 수 있습니다.

China Telecom의 휴대전화 번호 범위는 133, 149, 153, 173, 177, 180, 181, 189, 199입니다.

China Unicom의 휴대전화 번호 범위는 130, 131, 132, 145, 155, 156, 166, 175, 176, 185, 186;

China Mobile의 휴대폰 번호 범위는 134, 135, 136, 137, 138, 139, 147, 148, 150, 151, 152, 157, 158, 159, 165, 172, 178, 182, 183, 184, 187, 188, 198.

다음은 해당 휴대폰 번호에 해당하는 통신사에 따라 해당 정보를 출력할 수 있는 샘플 코드입니다.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    // 手机号码正则表达式
    mobileExp := `^(1[3-9]d{9})$`

    // 编译正则表达式
    mobileReg := regexp.MustCompile(mobileExp)

    // 测试手机号码
    mobile := "13412345678"
    if mobileReg.MatchString(mobile) {
        if mobile[0:3] == "133" || mobile[0:3] == "149" || mobile[0:3] == "153" || mobile[0:3] == "173" || mobile[0:3] == "177" || mobile[0:3] == "180" || mobile[0:3] == "181" || mobile[0:3] == "189" || mobile[0:3] == "199" {
            fmt.Printf("手机号码 %s 是中国电信", mobile)
        } else if mobile[0:3] == "130" || mobile[0:3] == "131" || mobile[0:3] == "132" || mobile[0:3] == "145" || mobile[0:3] == "155" || mobile[0:3] == "156" || mobile[0:3] == "166" || mobile[0:3] == "175" || mobile[0:3] == "176" || mobile[0:3] == "185" || mobile[0:3] == "186" {
            fmt.Printf("手机号码 %s 是中国联通", mobile)
        } else if mobile[0:3] == "134" || mobile[0:3] == "135" || mobile[0:3] == "136" || mobile[0:3] == "137" || mobile[0:3] == "138" || mobile[0:3] == "139" || mobile[0:3] == "147" || mobile[0:3] == "148" || mobile[0:3] == "150" || mobile[0:3] == "151" || mobile[0:3] == "152" || mobile[0:3] == "157" || mobile[0:3] == "158" || mobile[0:3] == "159" || mobile[0:3] == "165" || mobile[0:3] == "172" || mobile[0:3] == "178" || mobile[0:3] == "182" || mobile[0:3] == "183" || mobile[0:3] == "184" || mobile[0:3] == "187" || mobile[0:3] == "188" || mobile[0:3] == "198" {
            fmt.Printf("手机号码 %s 是中国移动", mobile)
        } else {
            fmt.Printf("手机号码 %s 不是中国电信、中国联通或中国移动", mobile)
        }
    } else {
        fmt.Printf("手机号码 %s 不合法
", mobile)
    }
}

위 코드에서는 먼저 휴대폰 번호가 합법적인지 확인합니다. 휴대폰 번호가 합법적인 경우 휴대폰 번호에 해당하는 처음 3자리를 기준으로 해당 정보가 출력됩니다.

요약하자면, golang에서 정규식을 사용하면 휴대폰 번호 확인과 운영자 판단이 쉽게 이루어질 수 있습니다. 실제 개발에서는 보다 유연한 검증과 판단을 위해 정규식과 각 사업자의 휴대폰 번호 세그먼트를 변수로 저장하는 등 필요에 따라 코드를 최적화할 수 있습니다. 🎜

위 내용은 golang에서 정규식을 사용하여 휴대폰 번호 연산자를 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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