asp.net 中國(guó)身份證號(hào)碼驗(yàn)證代碼 非正則
using System;
/// <summary>
/// Summary description for IDCardValid
/// </summary>
public class IDCardValid
{
public IDCardValid()
{
//
// TODO: Add constructor logic here
//
}
/// <summary>
/// 驗(yàn)證身份證號(hào)碼
/// </summary>
/// <param name="Id">身份證號(hào)碼</param>
/// <returns>驗(yàn)證成功為T(mén)rue,否則為False</returns>
public static bool CheckIDCard(string Id)
{
if (Id.Length == 18)
{
bool check = CheckIDCard18(Id);
return check;
}
else if (Id.Length == 15)
{
bool check = CheckIDCard15(Id);
return check;
}
else
{
return false;
}
}
#region 身份證號(hào)碼驗(yàn)證
/// <summary>
/// 驗(yàn)證15位身份證號(hào)
/// </summary>
/// <param name="Id">身份證號(hào)</param>
/// <returns>驗(yàn)證成功為T(mén)rue,否則為False</returns>
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('x', '0').Replace('X', '0'), out n) == false)
{
return false;//數(shù)字驗(yàn)證
}
string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
if (address.IndexOf(Id.Remove(2)) == -1)
{
return false;//省份驗(yàn)證
}
string birth = Id.Substring(6, 8).Insert(6, "-").Insert(4, "-");
DateTime time = new DateTime();
if (DateTime.TryParse(birth, out time) == false)
{
return false;//生日驗(yàn)證
}
string[] arrVarifyCode = ("1,0,x,9,8,7,6,5,4,3,2").Split(',');
string[] Wi = ("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2").Split(',');
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.DivRem(sum, 11, out y);
if (arrVarifyCode[y] != Id.Substring(17, 1).ToLower())
{
return false;//校驗(yàn)碼驗(yàn)證
}
return true;//符合GB11643-1999標(biāo)準(zhǔn)
}
/// <summary>
/// 驗(yàn)證18位身份證號(hào)
/// </summary>
/// <param name="Id">身份證號(hào)</param>
/// <returns>驗(yàn)證成功為T(mén)rue,否則為False</returns>
private static bool CheckIDCard15(string Id)
{
long n = 0;
if (long.TryParse(Id, out n) == false || n < Math.Pow(10, 14))
{
return false;//數(shù)字驗(yàn)證
}
string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
if (address.IndexOf(Id.Remove(2)) == -1)
{
return false;//省份驗(yàn)證
}
string birth = Id.Substring(6, 6).Insert(4, "-").Insert(2, "-");
DateTime time = new DateTime();
if (DateTime.TryParse(birth, out time) == false)
{
return false;//生日驗(yàn)證
}
return true;//符合15位身份證標(biāo)準(zhǔn)
}
#endregion
}
- jquery正則表達(dá)式驗(yàn)證(手機(jī)號(hào)、身份證號(hào)、中文名稱)
- JavaScript正則表達(dá)式驗(yàn)證身份證號(hào)碼是否合法(兩種方法)
- 如何用javascript正則表達(dá)式驗(yàn)證身份證號(hào)碼是否合法
- jQuery如何用正則表達(dá)式驗(yàn)證手機(jī)號(hào)、身份證號(hào)、中文名稱
- Javascript使用正則驗(yàn)證身份證號(hào)(簡(jiǎn)單)
- php不用正則驗(yàn)證真假身份證
- jQuery驗(yàn)證手機(jī)號(hào)郵箱身份證的正則表達(dá)式(含港澳臺(tái))
- 正則表達(dá)式限制 賬號(hào) 密碼 郵箱 身份證 手機(jī)號(hào)的相關(guān)代碼
- iOS 中使用正則表達(dá)式判斷身份證格式及銀行卡號(hào)格式是否正確(推薦)
- 15/18位身份證號(hào)碼驗(yàn)證的正則表達(dá)式總結(jié)(詳細(xì)版)
相關(guān)文章
ASP.NET MVC5網(wǎng)站開(kāi)發(fā)文章管理架構(gòu)(七)
繼上一篇把member的用戶部分完成,現(xiàn)在開(kāi)始做文章管理部分。文章部分根據(jù)涉及顯示現(xiàn)實(shí)文章列表,發(fā)布文章,修改和刪除文章等功能。最終的實(shí)現(xiàn)目標(biāo)是使用權(quán)限來(lái)控制用戶是否能進(jìn)行相應(yīng)操作,管理員權(quán)限的會(huì)顯示全部文章列表和我的文章列表,普通用戶只顯示我的文章列表2015-09-09Asp.Net Core WebAPI使用Swagger時(shí)API隱藏和分組詳解
這篇文章主要給大家介紹了關(guān)于Asp.Net Core WebAPI使用Swagger時(shí)API隱藏和分組的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Asp.Net Core具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04利用Aspose.Cells實(shí)現(xiàn)萬(wàn)能導(dǎo)出功能
這篇文章主要為大家詳細(xì)介紹了利用Aspose.Cells實(shí)現(xiàn)萬(wàn)能導(dǎo)出功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12如何在.Net6 web api中記錄每次接口請(qǐng)求的日志
.net6有自帶的logging組件,還有很多優(yōu)秀的開(kāi)源log組件,如NLog,serilog,這里我們使用serilog組件來(lái)構(gòu)建日志模塊,這篇文章主要介紹了如何在.Net6 web api中記錄每次接口請(qǐng)求的日志,需要的朋友可以參考下2023-06-06Asp.net 連接MySQL的實(shí)現(xiàn)代碼[]
ASP.NET連接MySQL需要一個(gè)組件(.net本身不提供訪問(wèn)MySQL的驅(qū)動(dòng))MySQL.Data.Dll,此為官方提供(純C#開(kāi)發(fā),開(kāi)源噢),有多個(gè)版本選擇,采用的數(shù)據(jù)訪問(wèn)模式為ADO.NET,跟asp.net訪問(wèn)sqlserver很像,非常簡(jiǎn)單。2009-08-08使用FreeHost SQL2000網(wǎng)頁(yè)管理器出錯(cuò)解決辦法
在您登陸FreeHost SQL2000網(wǎng)頁(yè)管理器時(shí),如果提示以下信息: 發(fā)生類型為 System.Web.HttpUnhandledException 的異常2012-01-01Visual Studio尋找C#程序必要的運(yùn)行庫(kù)文件
這篇文章主要為大家詳細(xì)介紹了Visual Studio尋找C#程序必要的運(yùn)行庫(kù)文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05Asp.net 獲取指定目錄下的后綴名為".doc" 的所有文件名和文件路徑
Asp.net 獲取指定目錄下的后綴名為“.doc” 的所有文件名和文件路徑,幫寫(xiě)一個(gè)方法2011-07-07ASP.NET過(guò)濾類SqlFilter,防止SQL注入
本文分享一個(gè)防SQL注入的過(guò)濾類SqlFilter,可以防止通過(guò)POST、GET和Cookies的注入。2016-03-03