问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

asp.net c#代码 验证身份证格式是否正确 只要能验证位数(15、18位)和出生日期就行了

发布网友 发布时间:2022-04-24 22:01

我来回答

4个回答

热心网友 时间:2022-04-24 23:30

使用验证控件RegularExpressionValidator
设置属性ValidationExpression为中华人民共和国身份证号码(ID号)就可以了

热心网友 时间:2022-04-25 00:48

赞同一楼的回答,如果想更强大,可以在client端用javascript 和正则表达式去验证,网上搜搜吧 这方面的代码蛮多的

热心网友 时间:2022-04-25 02:23

/// <summary>
/// 验证身份证号码
/// </summary>
/// <param name="Id">身份证号码</param>
/// <returns>验证成功为True,否则为False</returns>
public 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;
}
}

/// <summary>
/// 验证18位身份证号
/// </summary>
/// <param name="Id">身份证号</param>
/// <returns>验证成功为True,否则为False</returns>
public 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;//数字验证
}
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(',');
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;//校验码验证
}
return true;//符合GB11643-1999标准
}

/// <summary>
/// 验证15位身份证号
/// </summary>
/// <param name="Id">身份证号</param>
/// <returns>验证成功为True,否则为False</returns>
public 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;//符合15位身份证标准
}

热心网友 时间:2022-04-25 04:14

^[1-9]([0-9]{16}|[0-9]{13})[xX0-9]$
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...Exception EoleSysError in module PlayGame.exe at 000AAA95,怎么... ...出现Exception EOleSysError in module ATT.exe at 000BCA21.拒绝... 求大神帮忙: Exception EOleSysError in module.1.多元函数概念(1... windows7ExceptionEOlesysErrorinmoduleexeat000649E0找不到指定模块... 南京新街口适合情侣吃饭的地方,南京钟山景区露台酒店价格 c语言中如何计算a+ b的和 题目:有用户输入两个整数a,b 求a和b之间的数的累加和,包括a和b 用C语... 有请高手解答,平手盘是什么意思,我认为打平多 平手盘什么意思平手盘指的是什么 食品添加剂安全使用指南目录 风魔一族是怎么一回事?八神一族又是什么? 平顶山新城区有没有修衣服的店 火影忍者疾风传里的风魔一族 平顶山哪家洗白衣服的干洗店洗的干净 平顶山有哪些干洗店可加盟 5000左右求推荐原声木吉他,不要插电的,我自己看中的有满式MD60,拿火的相思木全单,还有别的吗 venice吉他好不好 交通银行鹤庆支行疫情期间2022年营业吗? 故意杀人罪判多少年呢 请翻译 &quot;小浣熊&quot; 英语翻译$$ たぬき 是小浣熊吗的中文翻译 做美工如PS,AI这些的都是怎么计算工资的,工资高吗? 在工作之余学了平面设计软件,CDR,PS,AI,现以从事平面一年了,在广告公司 上班,可是工资不是那么理想 请问您是哪里工作,我是学平面设计刚毕业,会PS、AI、ID怎么没有你说的工资那个数字啊? 会做设计,熟练操作PS、AI、FLASH、DW、手写前端代码DIV+CSS和JS,在成都能拿到多少工资?谢谢 我已经学完了CDR,PS,AI。现在在一个房地产公司一边工作一边学习DW和FL。如果我学完了可以找什么工作? Photoshop、illustrator这样的软件学好了将来的就业方向是什么? 会PS和AI,去找个平面设计的工作,工资大概多高 会PS AI CDR多少一个月 风魔是怎样的组织?其忍者头目都叫风魔小太郎? 有在平顶山开干洗店的朋友吗? 我想开个干洗店 却不知道从哪着手 有的朋友请帮忙指点指点 感谢! 平顶山哪里有给衣服染色的地方 刚刚看了《风魔小次郎》,在日本真的存在忍者吗? 风魔小太郎和猿飞佐助谁厉害? 西游记 第二十回 黄风岭唐僧有难 半山中八戒争先 第二十一回 *设庄留大圣 须弥灵吉定风魔 梗概 风魔的幸存者 风魔小次郎真人版演员中文名名称都是?? 怎么从盟重去风魔啊? 风魔岚的人物设定 《反派听见系统的声音后》? 求,反派听见系统的声音后百度云 插了耳机语音,对面能听到我系统声音.怎么解决 为什么聊语音能被人听到我系统里的声音 为什么语音聊天对方听到的是我的系统声音 为什么开语音时对方听到的是我的系统声音? 别人能听到我系统的声音,但不能听见我说话。 【找书】耽美,反系统,主角是原住民,是被攻略对象。能够听到那些任务者(攻略对象)的系统提示声音 window7系统语音时对方能听到自己电脑的声音如何取消?关掉混音也不行 为什么语音时候 对方可以听到我的系统声音听不到我说话