首頁 後端開發 C#.Net教程 C#關於驗證身分證號碼的實例分析(正確性)

C#關於驗證身分證號碼的實例分析(正確性)

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

這篇文章主要介紹了C#驗證身分證號碼正確性的實例代碼,包括18位號碼和15位號碼的校驗,需要的朋友可以參考下

今天在QQ空間看到一篇關於C#語言驗證18位身分證號碼的驗證方法和實例代碼,抽了些時間學習了一下,個人覺得還不錯,所以把它記了下來,方便以後使用!

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;//正确
    }
登入後複製

總結

#

以上是C#關於驗證身分證號碼的實例分析(正確性)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

分享幾個.NET開源的AI和LLM相關專案框架 分享幾個.NET開源的AI和LLM相關專案框架 May 06, 2024 pm 04:43 PM

當今人工智慧(AI)技術的發展如火如荼,它們在各個領域都展現了巨大的潛力和影響力。今天大姚給大家分享4個.NET開源的AI模型LLM相關的專案框架,希望能為大家提供一些參考。 https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel是一種開源的軟體開發工具包(SDK),旨在將大型語言模型(LLM)如OpenAI、Azure

C#的就業前景如何 C#的就業前景如何 Oct 19, 2023 am 11:02 AM

無論您是初學者還是有經驗的專業人士,掌握C#將為您的職業發展鋪平道路。

面向開發人員的.NET效能最佳化技術 面向開發人員的.NET效能最佳化技術 Sep 12, 2023 am 10:43 AM

如果你是.NET開發者,你必須意識到在交付高品質軟體方面,優化功能和效能的重要性。透過熟練使用提供的資源並減少網站載入時間,你不僅為使用者創造了愉快的體驗,還能減少基礎設施成本。

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作為目前國內最受歡迎的論壇系統之一,具有穩定性高、易於自訂和豐富的插件等特點,深受使用者喜愛。在本文中,我們將介紹如何從零開始建立一個Discuz論壇,包括詳細的教學步驟和實例分析,同時會提供具體的程式碼範例。第一步:伺服器環境

php-fpm進程管理技巧與實例分析 php-fpm進程管理技巧與實例分析 Jul 08, 2023 am 08:03 AM

PHP-FPM進程管理技巧與實例分析概述:在PHP網頁開發中,PHP-FPM(FastCGIProcessManager)是一種進程管理器,負責處理來自Web伺服器的請求。它採用基於事件的模型來管理PHP進程,提供了更有效率的請求處理能力。本文將介紹一些PHP-FPM的進程管理技巧,並結合實例進行分析。一、進程池調整技巧:1.1調整進程數量:根據伺服器的

PHP語言開發中避免死循環及實例分析 PHP語言開發中避免死循環及實例分析 Jun 10, 2023 pm 03:01 PM

在PHP語言開發中,死循環是常見的錯誤類型。死循環的出現會導致程式無法正常執行,也會佔用大量的系統資源,甚至導致系統崩潰。因此,避免死循環是PHP程式開發中非常重要的一環。什麼是死循環?死循環指的是程式中的一個循環結構,當條件永遠為真時,循環會一直持續下去,直到程式崩潰或強制終止為止。死循環也被稱為無限循環,因為它沒有結束條件,會一直循環下去。這種情況下

高級C#.NET教程:ACE您的下一次高級開發人員面試 高級C#.NET教程:ACE您的下一次高級開發人員面試 Apr 08, 2025 am 12:06 AM

C#高級開發者面試需要掌握異步編程、LINQ、.NET框架內部工作原理等核心知識。 1.異步編程通過async和await簡化操作,提升應用響應性。 2.LINQ以SQL風格操作數據,需注意性能。 3..NET框架的CLR管理內存,垃圾回收需謹慎使用。

See all articles