Home  >  Article  >  Backend Development  >  How to verify mobile phone number operator using regular expression in golang

How to verify mobile phone number operator using regular expression in golang

WBOY
WBOYOriginal
2023-06-24 08:17:491067browse

When developing a program, it is often necessary to verify whether the entered mobile phone number is legal and which operator the mobile phone number belongs to. This process can be easily achieved using regular expressions in golang. This article will introduce how to use regular expressions to verify mobile phone number operators in golang.

1. Verify whether the mobile phone number is legal

In golang, you can use regular expressions to verify whether the mobile phone number is legal. The following is a sample code:

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)
    }
}

In the above code, a regular expression for a mobile phone number is first defined, and then the regexp.MustCompile() method is used to compile it into a regular expression object. Finally, use the MatchString() method to verify whether the mobile phone number is legal. If the verification is passed, "Mobile phone number xxx is legal" is output, otherwise "Mobile phone number xxx is illegal" is output.

In the above code, the regular expression of the mobile phone number is ^(1[3-9]d{9})$, which represents an 11-digit number starting with 1. Among them, the second digit is a number between 3 and 9, and the following 10 digits can be any number. The regular expression can be modified as needed to validate mobile phone numbers in a specific format.

2. Verify the operator of the mobile phone number

In golang, you can use the mobile phone number segments of China Telecom, China Unicom and China Mobile to determine the operator of the mobile phone number.

China Telecom’s mobile phone number ranges are: 133, 149, 153, 173, 177, 180, 181, 189, 199;

China Unicom’s mobile phone number ranges are: 130, 131, 132, 145, 155, 156, 166, 175, 176, 185, 186;

China Mobile’s mobile phone number segments are: 134, 135, 136, 137, 138, 139, 147, 148, 150, 151, 152, 157, 158, 159, 165, 172, 178, 182, 183, 184, 187, 188, 198.

The following is a sample code that can output corresponding information according to the operator corresponding to the mobile phone number:

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)
    }
}

In the above code, first verify whether the mobile phone number is legal. If the mobile phone number is legal, the corresponding information will be output based on the first 3 digits corresponding to the mobile phone number.

To sum up, by using regular expressions in golang, mobile phone number verification and operator judgment can be easily achieved. In actual development, the code can be optimized as needed, such as saving regular expressions and the mobile phone number segments of each operator as variables to achieve more flexible verification and judgment.

The above is the detailed content of How to verify mobile phone number operator using regular expression in golang. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn