Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie reguläre Ausdrücke in Golang, um zu überprüfen, ob es sich bei der Eingabe um eine ID-Nummer für einen Einwohner des chinesischen Festlandes handelt

So verwenden Sie reguläre Ausdrücke in Golang, um zu überprüfen, ob es sich bei der Eingabe um eine ID-Nummer für einen Einwohner des chinesischen Festlandes handelt

PHPz
PHPzOriginal
2023-06-24 08:49:00821Durchsuche

In Golang kann die Verwendung regulärer Ausdrücke zur Überprüfung, ob es sich bei der Eingabe um eine auf dem chinesischen Festland ansässige ID-Nummer handelt, erreicht werden, indem die Funktion MatchString() für reguläre Ausdrücke in der in der Go-Sprache erstellten regulären Ausdrucksbibliothek regexp verwendet wird.

Die Personalausweisnummer des chinesischen Festlandes besteht aus 18 Ziffern und Buchstaben; die ersten 17 Ziffern sind die Vorwahl und das Geburtsdatum, und die letzte Ziffer ist der Prüfcode. Um zu überprüfen, ob es sich bei der Eingabe um eine gültige ID-Nummer handelt, muss überprüft werden, ob sie den Formatanforderungen der ID-Nummer entspricht.

Das Folgende ist ein grundlegender regulärer Ausdruck, der verwendet wird, um abzugleichen, ob die Eingabe den Formatanforderungen der ID-Nummer entspricht:

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

Unter diesen stellt ^ den Anfang der Eingabezeichenfolge dar, $ stellt das Ende der Eingabezeichenfolge dar, ( ) stellt die folgenden passenden Teile dar.

  • [1-9]d{5}: Gibt die Landesvorwahl an (Ziffern 1-6). Die erste Ziffer muss eine Zahl von 1 bis 9 sein, und die nächsten 5 Ziffern können eine beliebige Zahl sein.
  • d{4}: Gibt das Geburtsjahr an (7.-10. Ziffer).
  • (0[1-9]|1[0-2]): Gibt den Geburtsmonat an (11.-12. Ziffer), d. h. es muss eine Zahl von 01 bis 12 sein.
  • (0-2|[1-3]d|4[0-6]|5[0-2]): Gibt das Geburtsdatum an (13.-14. Ziffer), das eine Zahl von 01 bis 31 sein muss .
  • d{3}: Gibt die persönliche Sequenznummer (Ziffern 15–17) an, bei der es sich um eine zufällig zugewiesene dreistellige Zahl handelt.
  • (d|[Xx]): Gibt den Prüfcode (die 18. Ziffer) an, der eine Zahl oder der Großbuchstabe „X“ sein kann.

Schreiben Sie den obigen regulären Ausdruck in den 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)
}

Verwenden Sie im obigen Code die Methode Regexp.MustCompile(), um den regulären Ausdruck in eine Regexp-Instanz zu kompilieren, und verwenden Sie dann die Methode reg.MatchString() zum Abgleichen die Eingabezeichenfolge.

Verwenden Sie abschließend diese Funktion im Programm, um zu überprüfen, ob es sich bei der Eingabe um eine gültige ID-Nummer handelt:

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

Kurz gesagt, die Verwendung regulärer Ausdrücke in Golang zur Überprüfung der ID-Nummer eines Einwohners auf dem chinesischen Festland kann die Rechtmäßigkeit und Korrektheit sicherstellen und eine solide Grundlage schaffen Grundlage für die Entwicklung umfassenderer Anwendungen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie reguläre Ausdrücke in Golang, um zu überprüfen, ob es sich bei der Eingabe um eine ID-Nummer für einen Einwohner des chinesischen Festlandes handelt. 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