Maison  >  Article  >  développement back-end  >  Comment vérifier l'opérateur du numéro de téléphone mobile à l'aide d'une expression régulière dans Golang

Comment vérifier l'opérateur du numéro de téléphone mobile à l'aide d'une expression régulière dans Golang

WBOY
WBOYoriginal
2023-06-24 08:17:491018parcourir

Lors du développement d'un programme, il est souvent nécessaire de vérifier si le numéro de téléphone mobile saisi est légal et à quel opérateur appartient le numéro de téléphone mobile. Ce processus peut être facilement réalisé en utilisant des expressions régulières dans Golang. Cet article explique comment utiliser les expressions régulières pour vérifier les opérateurs de numéros de téléphone mobile en Golang.

1. Vérifiez si le numéro de téléphone mobile est légal

Dans Golang, vous pouvez utiliser des expressions régulières pour vérifier si le numéro de téléphone mobile est légal. Voici un exemple de 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)
    }
}

Dans le code ci-dessus, une expression régulière pour un numéro de téléphone mobile est d'abord définie, puis la méthode regexp.MustCompile() est utilisée pour la compiler en un objet d’expression régulière. Enfin, utilisez la méthode MatchString() pour vérifier si le numéro de téléphone mobile est légal. Si la vérification est réussie, « Le numéro de téléphone portable xxx est légal » est affiché, sinon « Le numéro de téléphone portable xxx est illégal » est affiché. regexp.MustCompile()方法将其编译为正则表达式对象。最后使用MatchString()方法验证手机号码是否合法。如果验证通过,则输出“手机号码 xxx 合法”,否则输出“手机号码 xxx 不合法”。

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

Dans le code ci-dessus, l'expression régulière du numéro de téléphone mobile est ^(1[3-9]d{9})$, qui représente un nombre à 11 chiffres commençant par 1. Parmi eux, le deuxième chiffre est un nombre compris entre 3 et 9, et les 10 chiffres suivants peuvent être n'importe quel nombre. L'expression régulière peut être modifiée selon les besoins pour valider les numéros de téléphone mobile dans un format spécifique.

2. Vérifiez l'opérateur du numéro de téléphone mobile

Dans Golang, vous pouvez utiliser les segments de numéro de téléphone mobile de China Telecom, China Unicom et China Mobile pour déterminer l'opérateur du numéro de téléphone mobile.

Les plages de numéros de téléphone mobile de China Telecom sont : 133, 149, 153, 173, 177, 180, 181, 189, 199.

Les plages de numéros de téléphone mobile de China Unicom sont : 130, 131, 132, 145, 155, 156, 166, 175, 176, 185, 186 ;

Les plages de numéros de téléphone mobile de China Mobile sont : 134, 135, 136, 137, 138, 139, 147, 148, 150, 151, 152, 157, 158, 159, 165, 172, 178, 182, 183, 184, 187, 188, 198.

Ce qui suit est un exemple de code qui peut afficher les informations correspondantes en fonction de l'opérateur correspondant au numéro de téléphone portable :

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

Dans le code ci-dessus, vérifiez d'abord si le numéro de téléphone portable est légal. Si le numéro de téléphone mobile est légal, les informations correspondantes seront affichées sur la base des 3 premiers chiffres du numéro de téléphone mobile.

En résumé, en utilisant des expressions régulières dans Golang, la vérification du numéro de téléphone mobile et le jugement de l'opérateur peuvent être facilement réalisés. Dans le développement réel, le code peut être optimisé selon les besoins, par exemple en enregistrant les expressions régulières et les segments de numéro de téléphone mobile de chaque opérateur en tant que variables pour obtenir une vérification et un jugement plus flexibles. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn