開発において、ID 番号の正規表現検証は非常に一般的な要件です。 Go 言語には正規表現ライブラリも組み込まれているため、正規表現を使用して ID 番号の検証を簡単に行うことができます。この記事では、golangで正規表現を使ってID番号を確認する方法を紹介します。
1. ID 番号の基本ルール
ID 番号を検証する前に、ID 番号の基本ルールを理解する必要があります。中国本土の ID 番号は 18 桁で構成され、最後の桁は数字または文字 X です。このうち、最初の17桁が住所コードと生年月日コード、最後の1桁がチェックコードです。具体的なルールは次のとおりです:
- 住所コードの最初の 6 桁は、そのコードが所在する省、自治区、または市区町村を示し、
- 7 桁から 14 桁は、住所コードの出生時間を示します。
- 住所コードの 15 桁目から 17 桁目は、地元の警察署を示します。
##最後の桁は、確認に使用されるチェック コードです。 ID番号が正しいかどうか。 -
2. 正規表現を使用して ID 番号を確認する
Go 言語で regexp パッケージを使用すると、正規表現の機能を実装できます。 ID 番号の検証では、次の正規表現を使用して検証できます。
1 | ^(d{15}$|d{18}$|d{17}(d|X|x))$
|
ログイン後にコピー
この正規表現の意味は次のとおりです。
^ は文字列の開始位置を表します-
d は数値を表します {15} は 15 回繰り返された前の数値を表します $ は文字列の終了位置を表します | は論理 OR 関係を表します -
(d|X|x) は、数字または文字 X または x
この正規表現を使用して、ID 番号の基本的な検証を実行します。次のコードでは、この正規表現を使用して ID 番号の正確さを検証できます。コード例は次のとおりです:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | 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)
}
|
ログイン後にコピー
上記のコードを実行すると、次の出力が得られます:
1 2 3 4 | 130503670401001 校验通过!
130503670401001232 校验失败!
13050367040100 校验失败!
13050367040100123X 校验通过!
|
ログイン後にコピー
3. 結論
この記事では、正規表現を使用して検証する方法を紹介します。 golang 番号の ID カード。組み込みの正規表現ライブラリを使用することで、さまざまな形式での ID 番号検証を簡単に実装できます。実際の開発では、検証が必要なID番号をcheckID関数に渡すだけで、そのID番号が正当であるかどうかの検証結果が得られます。
以上がgolangで正規表現を使用してID番号を確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。