Maison >développement back-end >Golang >Utilisez des expressions régulières dans Golang pour vérifier si l'entrée est un numéro de document d'identité légal

Utilisez des expressions régulières dans Golang pour vérifier si l'entrée est un numéro de document d'identité légal

WBOY
WBOYoriginal
2023-06-24 11:48:471449parcourir

Pour les scénarios d'application nécessitant la vérification des numéros d'identification, il est courant d'utiliser des expressions régulières pour déterminer si l'entrée est légale. Golang fournit le package regexp, qui peut être utilisé pour effectuer des opérations de correspondance d'expressions régulières. Cet article explique comment utiliser les expressions régulières dans Golang pour vérifier si le numéro d'identification d'entrée est légal.

1. Règles relatives au numéro de carte d'identité

Le numéro de carte d'identité est composé de 18 chiffres et d'un code de contrôle. Le format spécifique est le suivant :

Chiffres 1~2 : Indique la province, représentée par le code statistique désigné par le National. Bureau des statistiques ;

Les 3ème à 4ème chiffres : indiquent la ville, spécifiée par les codes de province et de région autonome ;

Les 5ème à 6ème chiffres : indiquent le district et le comté, spécifiés par les codes de ville, de comté et de district ;

Le 7ème au 14ème chiffre : indique l'année de naissance Mois et jour, par exemple :

19900907表示生于1990年9月7日

Le 15ème au 17ème chiffre : représente le numéro de séquence, généralement un nombre impair

Le 18ème chiffre : représente le code de contrôle, généré selon les réglementations ISO 7064:1983.MOD 11-2.

2. Utilisez des expressions régulières pour vérifier les numéros d'identification

Dans Golang, vous pouvez utiliser des expressions régulières pour vérifier si le numéro d'identification est conforme aux règles. L'expression régulière spécifique est la suivante :

^([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]$

où, ^ représente la position de départ de la chaîne correspondante et $ représente la position finale de la chaîne correspondante. ([1-9]d{5}) signifie faire correspondre les six premiers chiffres du numéro d'identification, c'est-à-dire le code de la province et de la ville. (19|20)d{2} représente l'année de naissance correspondant au numéro d'identification, où 19 et 20 représentent les deux premiers chiffres de l'année et d{2} représente les deux derniers chiffres de l'année. ((0[1-9])|(1[0-2])) correspond au mois, ((0-2)|(3[0-1])) correspond au jour, d{3}[0- 9xX] Faites correspondre le code de séquence et le code de contrôle, où x et X indiquent que le code de contrôle peut être composé de chiffres de 0 à 9 ou de la lettre X (majuscules et minuscules).

Dans Golang, vous pouvez utiliser le package regexp pour la correspondance d'expressions régulières. L'utilisation spécifique est la suivante :

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("身份证号码非法")
    }
}

Dans le code ci-dessus, un numéro de carte d'identité est d'abord défini, puis la fonction Compile du package regexp est utilisée pour compiler l'expression régulière en un objet régulier rgx. Enfin, appelez la fonction rgx.Match pour faire correspondre le numéro d'identification si la correspondance réussit, elle renverra vrai, sinon elle renverra faux.

3. Résumé

Grâce à l'introduction ci-dessus, nous pouvons voir qu'il est très facile d'utiliser des expressions régulières pour vérifier la légitimité du numéro d'identification dans Golang. Il vous suffit de définir une expression régulière, puis d'utiliser le package regexp pour la compiler en un objet régulier pour la correspondance. Bien entendu, étant donné que les règles relatives aux numéros d'identification peuvent changer selon les scénarios, l'expression régulière doit être ajustée en fonction des besoins spécifiques.

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