Heim >Backend-Entwicklung >Golang >So verwenden Sie reguläre Ausdrücke, um die ID-Nummer in Golang zu überprüfen

So verwenden Sie reguläre Ausdrücke, um die ID-Nummer in Golang zu überprüfen

王林
王林Original
2023-06-24 09:00:071555Durchsuche

In der Entwicklung ist die Überprüfung der ID-Nummer durch reguläre Ausdrücke eine sehr häufige Anforderung. Die Go-Sprache verfügt außerdem über eine integrierte Bibliothek für reguläre Ausdrücke, sodass wir reguläre Ausdrücke problemlos verwenden können, um die Überprüfung der ID-Nummer durchzuführen. In diesem Artikel wird erläutert, wie Sie reguläre Ausdrücke zum Überprüfen von ID-Nummern in Golang verwenden.

1. Grundregeln der ID-Nummer

Bevor wir die ID-Nummer überprüfen, müssen wir die Grundregeln der ID-Nummer verstehen. Die Personalausweisnummer für das chinesische Festland besteht aus 18 Ziffern und die letzte Ziffer kann eine Zahl oder der Buchstabe X sein. Darunter sind die ersten 17 Ziffern der Adresscode und der Geburtsdatumscode, und die letzte Ziffer ist der Prüfcode. Die spezifischen Regeln lauten wie folgt:

  1. Die ersten 6 Ziffern des Adresscodes geben die Provinz, autonome Region oder Gemeinde an, in der sich der Code befindet.
  2. Die 7. bis 14. Ziffer des Adresscodes geben den Geburtszeitpunkt an;
  3. Die 15. bis 17. Ziffer des Adresscodes geben die örtliche Polizeistation an.
  4. Die letzte Ziffer ist ein Prüfcode, der zur Überprüfung der Richtigkeit der ID-Nummer verwendet wird.

2. Verwenden Sie reguläre Ausdrücke, um die ID-Nummer zu überprüfen.

Sie können das Regexp-Paket in der Go-Sprache verwenden, um die Funktion regulärer Ausdrücke zu implementieren. Bei der ID-Nummernüberprüfung können wir den folgenden regulären Ausdruck zur Überprüfung verwenden:

^(d{15}$|d{18}$|d{17}(d|X|x))$

Die Bedeutung dieses regulären Ausdrucks ist:

  • ^ stellt die Startposition der Zeichenfolge dar
  • d stellt die Zahl dar
  • {15} stellt die dar vorne Die Zahl wird 15 Mal wiederholt.
  • $ stellt die Endposition der Zeichenfolge dar.
  • | stellt eine logische ODER-Beziehung dar.
  • (d|X|x) stellt eine einfache Zahlen- oder Buchstabenüberprüfung dar. Der folgende Code kann diesen regulären Ausdruck verwenden, um die Richtigkeit der ID-Nummer zu überprüfen. Das Codebeispiel lautet wie folgt:
  • package main
    
    import (
        "fmt"
        "regexp"
    )
    
    func main() {
        testID1 := "130503670401001"
        testID2 := "130503670401001232"
        testID3 := "13050367040100"
        testID4 := "13050367040100123X"
    
        if checkID(testID1) {
            fmt.Printf("%s 校验通过!
    ", testID1)
        } else {
            fmt.Printf("%s 校验失败!
    ", testID1)
        }
    
        if checkID(testID2) {
            fmt.Printf("%s 校验通过!
    ", testID2)
        } else {
            fmt.Printf("%s 校验失败!
    ", testID2)
        }
    
        if checkID(testID3) {
            fmt.Printf("%s 校验通过!
    ", testID3)
        } else {
            fmt.Printf("%s 校验失败!
    ", testID3)
        }
    
        if checkID(testID4) {
            fmt.Printf("%s 校验通过!
    ", testID4)
        } else {
            fmt.Printf("%s 校验失败!
    ", testID4)
        }
    }
    
    func checkID(id string) bool {
        reg := regexp.MustCompile(`^(d{15}$|d{18}$|d{17}(d|X|x))$`)
        return reg.MatchString(id)
    }
Das Ausführen des obigen Codes kann die folgende Ausgabe erhalten:

130503670401001 校验通过!
130503670401001232 校验失败!
13050367040100 校验失败!
13050367040100123X 校验通过!

3. Fazit

In diesem Artikel wird erläutert, wie Sie reguläre Ausdrücke zur Überprüfung von ID-Nummern in Golang verwenden. Mithilfe der integrierten Bibliothek für reguläre Ausdrücke können wir die Überprüfung von ID-Nummern in verschiedenen Formaten problemlos implementieren. In der tatsächlichen Entwicklung müssen wir nur die zu überprüfende ID-Nummer an die checkID-Funktion übergeben, um das Überprüfungsergebnis zu erhalten, ob die ID-Nummer legal ist.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie reguläre Ausdrücke, um die ID-Nummer in Golang zu überprüfen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn