ホームページ バックエンド開発 C#.Net チュートリアル ID番号(正当性)を検証するC#の解析例

ID番号(正当性)を検証するC#の解析例

Jul 26, 2017 pm 03:25 PM
.net 事例分析

この記事では、18桁の番号と15桁の番号の検証を含む、IDカード番号の正確性を検証するためのC#のサンプルコードを主に紹介します。必要な友人はそれを参照してください

C#言語の検証に関する記事を見ました。今日はQQスペースで、18桁のIDカード番号の認証方法とサンプルコードを勉強したので、今後のために書き留めておきます。

18桁の数字:


private static bool CheckIDCard18(string Id)
    {
      long n = 0;
      if (long.TryParse(Id.Remove(17), out n) == false || n < Math.Pow(10, 16) || long.TryParse(Id.Replace(&#39;x&#39;, &#39;0&#39;).Replace(&#39;X&#39;, &#39;0&#39;), out n) == false)
      {
        return false;
      }
      string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
      if (address.IndexOf(Id.Remove(2)) == -1)
      {
        return false;
      }
      string birth = Id.Substring(6, 8).Insert(6, "-").Insert(4, "-");
      DateTime time = new DateTime();
      if (DateTime.TryParse(birth, out time) == false)
      {
        return false;
      }
      string[] arrVarifyCode = ("1,0,x,9,8,7,6,5,4,3,2").Split(&#39;,&#39;);
      string[] Wi = ("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2").Split(&#39;,&#39;);
      char[] Ai = Id.Remove(17).ToCharArray();
      int sum = 0;
      for (int i = 0; i < 17; i++)
      {
        sum += int.Parse(Wi[i]) * int.Parse(Ai[i].ToString());
      }
      int y = -1;
      Math.pRem(sum, 11, out y);
      if (arrVarifyCode[y] != Id.Substring(17, 1).ToLower())
      {
        return false;
      }
      return true;//正确
    }
ログイン後にコピー

15桁の数字:


private static bool CheckIDCard15(string Id)
    {
      long n = 0;
      if (long.TryParse(Id, out n) == false || n < Math.Pow(10, 14))
      {
        return false;
      }
      string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
      if (address.IndexOf(Id.Remove(2)) == -1)
      {
        return false;
      }
      string birth = Id.Substring(6, 6).Insert(4, "-").Insert(2, "-");
      DateTime time = new DateTime();
      if (DateTime.TryParse(birth, out time) == false)
      {
        return false;
      }
      return true;//正确
    }
ログイン後にコピー

まとめ

以上がID番号(正当性)を検証するC#の解析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

いくつかの .NET オープンソース AI および LLM 関連プロジェクト フレームワークを共有する いくつかの .NET オープンソース AI および LLM 関連プロジェクト フレームワークを共有する May 06, 2024 pm 04:43 PM

現在、人工知能(AI)技術の開発は本格化しており、さまざまな分野で大きな可能性と影響力を発揮しています。本日、Dayao は、参考にしていただけるよう、4 つの .NET オープン ソース AI モデル LLM 関連プロジェクト フレームワークを共有します。 https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel は、OpenAI、Azure などの大規模言語モデル (LLM) を統合するように設計されたオープン ソース ソフトウェア開発キット (SDK) です。

C# の雇用の見通しはどのようなものですか? C# の雇用の見通しはどのようなものですか? Oct 19, 2023 am 11:02 AM

初心者でも経験豊富なプロフェッショナルでも、C# をマスターすることでキャリアへの道が開かれます。

開発者向けの .NET パフォーマンス最適化テクノロジ 開発者向けの .NET パフォーマンス最適化テクノロジ Sep 12, 2023 am 10:43 AM

.NET 開発者は、高品質のソフトウェアを提供するために機能とパフォーマンスを最適化することの重要性を認識する必要があります。提供されたリソースを巧みに活用し、Web サイトの読み込み時間を短縮することで、ユーザーに快適なエクスペリエンスを提供するだけでなく、インフラストラクチャのコストも削減できます。

Java フレームワークと .NET フレームワークのパフォーマンスの違い Java フレームワークと .NET フレームワークのパフォーマンスの違い Jun 03, 2024 am 09:19 AM

同時実行性の高いリクエスト処理の点では、.NETASP.NETCoreWebAPI は JavaSpringMVC よりも優れたパフォーマンスを発揮します。その理由としては、AOT の早期コンパイルにより起動時間が短縮され、開発者がオブジェクト メモリの割り当てと解放を行うため、より洗練されたメモリ管理が行われます。

Discuz フォーラムをゼロから構築する: 詳細なチュートリアルとケース分析 Discuz フォーラムをゼロから構築する: 詳細なチュートリアルとケース分析 Mar 15, 2024 am 08:09 AM

Discuz フォーラムをゼロから構築する: 詳細なチュートリアルと事例分析 インターネットの発展に伴い、フォーラムは重要なソーシャル コミュニケーション プラットフォームとして、ネットワーク内で重要な位置を占めるようになりました。 Discuz は中国で最も人気のあるフォーラム システムの 1 つであり、高い安定性、容易なカスタマイズ、豊富なプラグインという特徴を備えており、ユーザーに深く愛されています。この記事では、詳細なチュートリアル手順とケース分析を含め、Discuz フォーラムを最初から構築する方法を紹介し、具体的なコード例も示します。ステップ 1: サーバー環境

php-fpm プロセス管理スキルと分析例 php-fpm プロセス管理スキルと分析例 Jul 08, 2023 am 08:03 AM

PHP-FPM プロセス管理スキルの概要と分析例: PHP Web 開発では、PHP-FPM (FastCGIProcessManager) は Web サーバーからのリクエストの処理を担当するプロセス マネージャーです。イベントベースのモデルを使用して PHP プロセスを管理し、より効率的なリクエスト処理機能を提供します。この記事では、PHP-FPM プロセス管理スキルをいくつか紹介し、例を用いて分析します。 1. プロセス プール調整スキル: 1.1 プロセス数の調整: サーバーに応じて

PHP 言語開発における無限ループとサンプル分析の回避 PHP 言語開発における無限ループとサンプル分析の回避 Jun 10, 2023 pm 03:01 PM

PHP 言語開発では、無限ループはよくあるタイプのエラーです。無限ループが発生すると、プログラムが正常に実行できなくなり、大量のシステム リソースが占有され、さらにはシステムがクラッシュする可能性があります。したがって、無限ループを回避することは、PHP プログラム開発の非常に重要な部分です。無限ループとは何ですか?無限ループとはプログラム内のループ構造を指し、条件が常に true の場合、プログラムがクラッシュするか強制終了されるまでループが継続します。無限ループは終了条件がなくループし続けるため、無限ループとも呼ばれます。この状況では

高度なC#.NETチュートリアル:次のシニア開発者インタビューをエース 高度なC#.NETチュートリアル:次のシニア開発者インタビューをエース Apr 08, 2025 am 12:06 AM

C#シニア開発者とのインタビューでは、非同期プログラミング、LINQ、.NETフレームワークの内部作業原則などのコア知識をマスターする必要があります。 1.非同期プログラミングは、非同期を通じて操作を簡素化し、アプリケーションの応答性を向上させるのを待ちます。 2.LinqはSQLスタイルでデータを操作し、パフォーマンスに注意を払います。 3.ネットフレームワークのCLRはメモリを管理し、ガベージコレクションに注意して使用する必要があります。

See all articles