golangで正規表現を使用してID番号を確認する方法

王林
リリース: 2023-06-24 09:00:07
オリジナル
1448 人が閲覧しました

開発において、ID 番号の正規表現検証は非常に一般的な要件です。 Go 言語には正規表現ライブラリも組み込まれているため、正規表現を使用して ID 番号の検証を簡単に行うことができます。この記事では、golangで正規表現を使ってID番号を確認する方法を紹介します。

1. ID 番号の基本ルール

ID 番号を検証する前に、ID 番号の基本ルールを理解する必要があります。中国本土の ID 番号は 18 桁で構成され、最後の桁は数字または文字 X です。このうち、最初の17桁が住所コードと生年月日コード、最後の1桁がチェックコードです。具体的なルールは次のとおりです:

  1. 住所コードの最初の 6 桁は、そのコードが所在する省、自治区、または市区町村を示し、
  2. 7 桁から 14 桁は、住所コードの出生時間を示します。
  3. 住所コードの 15 桁目から 17 桁目は、地元の警察署を示します。
  4. ##最後の桁は、確認に使用されるチェック コードです。 ID番号が正しいかどうか。
2. 正規表現を使用して ID 番号を確認する

Go 言語で regexp パッケージを使用すると、正規表現の機能を実装できます。 ID 番号の検証では、次の正規表現を使用して検証できます。

^(d{15}$|d{18}$|d{17}(d|X|x))$
ログイン後にコピー

この正規表現の意味は次のとおりです。

    ^ は文字列の開始位置を表します
  • d は数値を表します
  • {15} は 15 回繰り返された前の数値を表します
  • $ は文字列の終了位置を表します
  • | は論理 OR 関係を表します
  • (d|X|x) は、数字または文字 X または x
この正規表現を使用して、ID 番号の基本的な検証を実行します。次のコードでは、この正規表現を使用して ID 番号の正確さを検証できます。コード例は次のとおりです:

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) }
ログイン後にコピー

上記のコードを実行すると、次の出力が得られます:

130503670401001 校验通过! 130503670401001232 校验失败! 13050367040100 校验失败! 13050367040100123X 校验通过!
ログイン後にコピー

3. 結論

この記事では、正規表現を使用して検証する方法を紹介します。 golang 番号の ID カード。組み込みの正規表現ライブラリを使用することで、さまざまな形式での ID 番号検証を簡単に実装できます。実際の開発では、検証が必要なID番号をcheckID関数に渡すだけで、そのID番号が正当であるかどうかの検証結果が得られます。

以上がgolangで正規表現を使用してID番号を確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!