Maison > développement back-end > Golang > Comment utiliser des expressions régulières dans Golang pour vérifier si l'entrée est un numéro d'identification de résident de Chine continentale

Comment utiliser des expressions régulières dans Golang pour vérifier si l'entrée est un numéro d'identification de résident de Chine continentale

PHPz
Libérer: 2023-06-24 08:49:00
original
862 Les gens l'ont consulté

Dans Golang, l'utilisation d'expressions régulières pour vérifier si l'entrée est un numéro d'identification de résident de Chine continentale peut être obtenue en utilisant la fonction de correspondance d'expression régulière MatchString() dans la bibliothèque d'expressions régulières construite dans le langage Go.

Le numéro de carte d'identité de résident de Chine continentale est composé de 18 chiffres et lettres ; les 17 premiers chiffres sont l'indicatif régional et la date de naissance, et le dernier chiffre est le code de contrôle. Afin de vérifier si l'entrée est un numéro d'identification valide, il faut vérifier si elle répond aux exigences de format du numéro d'identification.

Ce qui suit est une expression régulière de base, utilisée pour déterminer si l'entrée répond aux exigences de format du numéro d'identification :

^([1-9]\d{5})(\d{4})(0[1-9]|1[0-2])([0-2][1-9]|[1-3]\d|4[0-6]|5[0-2])(\d{3})(\d|[Xx])$
Copier après la connexion

Parmi eux, ^ représente le début de la chaîne d'entrée, $ représente la fin de la chaîne d'entrée, ( ) représente les pièces correspondantes suivantes.

  • [1-9]d{5} : indique l'indicatif régional provincial (chiffres 1 à 6). Le premier chiffre doit être un nombre de 1 à 9 et les 5 chiffres suivants peuvent être n'importe quel nombre.
  • d{4} : Indique l'année de naissance (7e-10e chiffre).
  • (0[1-9]|1[0-2]) : Indique le mois de naissance (11e-12e chiffre), c'est-à-dire qu'il doit s'agir d'un nombre compris entre 01 et 12.
  • (0-2|[1-3]d|4[0-6]|5[0-2]) : Indique la date de naissance (13ème-14ème chiffre), qui doit être un nombre compris entre 01 et 31 .
  • d{3} : indique le numéro de séquence personnel (chiffres 15 à 17), qui est un numéro à 3 chiffres attribué au hasard.
  • (d|[Xx]) : Indique le code du chèque (le 18ème chiffre), qui peut être un chiffre ou la lettre majuscule « X ».

Écrivez l'expression régulière ci-dessus dans le code :

func isIDCardNumber(str string) bool {
    regIDCard := "^([1-9]\d{5})(\d{4})(0[1-9]|1[0-2])([0-2][1-9]|[1-3]\d|4[0-6]|5[0-2])(\d{3})(\d|[Xx])$"
    reg := regexp.MustCompile(regIDCard)
    return reg.MatchString(str)
}
Copier après la connexion

Dans le code ci-dessus, utilisez la méthode Regexp.MustCompile() pour compiler l'expression régulière dans une instance Regexp, puis utilisez la méthode reg.MatchString() pour faire correspondre la chaîne d'entrée.

Enfin, utilisez cette fonction dans le programme pour vérifier si l'entrée est un numéro d'identification valide :

func main() {
    idCardNumber := "411281199601017891" // 合法身份证号码
    if isIDCardNumber(idCardNumber) {
        fmt.Println("输入是有效的身份证号码")
    } else {
        fmt.Println("输入不是有效的身份证号码")
    }
}
Copier après la connexion

En bref, utiliser des expressions régulières dans Golang pour vérifier le numéro d'identification de résident de Chine continentale peut garantir la légalité et l'exactitude, en posant une solide base pour développer des applications plus complètes.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal