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!