Für Anwendungsszenarien, die eine Überprüfung von ID-Nummern erfordern, ist es üblich, reguläre Ausdrücke zu verwenden, um festzustellen, ob die Eingabe zulässig ist. Golang stellt das Regexp-Paket bereit, mit dem reguläre Ausdrucksvergleichsvorgänge durchgeführt werden können. In diesem Artikel wird erläutert, wie Sie mithilfe regulärer Ausdrücke in Golang überprüfen, ob die eingegebene ID-Nummer zulässig ist.
1. Regeln für die Ausweisnummer: Die Ausweisnummer besteht aus 18 Ziffern und einem Prüfcode. Das spezifische Format ist wie folgt:
Ziffern 1 bis 2: Gibt die Provinz an, dargestellt durch den vom Nationalen festgelegten statistischen Code Statistikamt;
Die 3. bis 4. Ziffer: gibt die Stadt an, angegeben durch die Codes der Provinz und der autonomen Region;
Die 5. bis 6. Ziffer: gibt den Bezirk und den Landkreis an, angegeben durch die Codes der Stadt, des Landkreises und des Bezirks;
Die 7. bis 14. Ziffer: gibt das Geburtsjahr, Monat und Tag an, zum Beispiel:
19900907表示生于1990年9月7日
Die 15. bis 17. Ziffer: stellt die Sequenznummer dar, normalerweise eine ungerade Zahl
Die 18. Ziffer: stellt den generierten Prüfcode dar gemäß den Vorschriften der ISO 7064:1983.MOD 11-2.
2. Verwenden Sie reguläre Ausdrücke, um ID-Nummern zu überprüfen.
In Golang können Sie reguläre Ausdrücke verwenden, um abzugleichen, ob die ID-Nummer den Regeln entspricht. Der spezifische reguläre Ausdruck lautet wie folgt:
^([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]$
wobei ^ die Startposition der passenden Zeichenfolge und $ die Endposition der passenden Zeichenfolge darstellt. ([1-9]d{5}) bedeutet, dass die ersten sechs Ziffern der ID-Nummer, also des Provinz- und Stadtcodes, übereinstimmen. (19|20)d{2} stellt das Geburtsjahr dar, das mit der ID-Nummer übereinstimmt, wobei 19 und 20 die ersten beiden Ziffern des Jahres darstellen und d{2} die letzten beiden Ziffern des Jahres darstellt. ((0[1-9])|(1[0-2])) entspricht dem Monat, ((0-2)|(3[0-1])) entspricht dem Tag, d{3}[0- 9xX] Passen Sie den Sequenzcode und den Prüfcode an, wobei x und X angeben, dass der Prüfcode aus den Zahlen 0–9 oder dem Buchstaben
In Golang können Sie das Regexp-Paket für den Abgleich regulärer Ausdrücke verwenden. Die spezifische Verwendung ist wie folgt:
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("身份证号码非法") } }
Im obigen Code wird zuerst eine ID-Kartennummer-ID definiert und dann die Kompilierungsfunktion im Regexp-Paket verwendet, um den regulären Ausdruck in ein reguläres Objekt rgx zu kompilieren. Rufen Sie abschließend die Funktion rgx.Match auf, um die ID-Nummer abzugleichen. Wenn der Abgleich erfolgreich ist, wird „true“ zurückgegeben, andernfalls wird „false“ zurückgegeben.
3. Zusammenfassung
Anhand der obigen Einführung können wir sehen, dass es sehr einfach ist, reguläre Ausdrücke zu verwenden, um die Legitimität der ID-Nummer in Golang zu überprüfen. Sie müssen lediglich einen regulären Ausdruck definieren und ihn dann mit dem Regexp-Paket in ein reguläres Objekt für den Abgleich kompilieren. Da sich die ID-Nummernregeln in verschiedenen Szenarien ändern können, muss der reguläre Ausdruck natürlich an die spezifischen Anforderungen angepasst werden.
Das obige ist der detaillierte Inhalt vonVerwenden Sie reguläre Ausdrücke in Golang, um zu überprüfen, ob es sich bei der Eingabe um eine gültige Ausweisnummer handelt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!