#region 验证身份证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;}}public 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;//数字验证}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;DivRem(sum, 11, out y);if (arrVarifyCode[y] != Id.Substring(17, 1).ToLower()){return false;//校验码验证}return true;//符合GB11643-1999标准}public static int DivRem(int a, int b, out int result){result = a % b;return (a / b);}public 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;//符合15位身份证标准}#endregion

C#校验身份证(15位、18位)相关推荐

  1. 校验身份证合法性(18位与15位互转)

    身份证15位与18位互转 最近在做一项目,用户可能用的是18位身份证号查询信息,但是登记的时候用的是15位身份证号登记的 ,想了好久最终,想到在后台获取到身份证号,通过工具类转化,18位转15位,这样 ...

  2. 身份证号码js校验(15位18位)

    idcard: {// 验证身份证(15位18位)validator: function (value) {// 1.传入15位或者18位身份证号码,18位号码末位可以为数字或Xvar idCard ...

  3. javascript实现完美身份证号有效性验证15位18位

    欢迎各位朋友!   前几天在开发中要求对用户的身份证号进行比较严格的校验,所以才有了这些代码, 下面的这些代码主要包括对身份证长度,地区,出生日期的校验. 方法在return时返回了一个是否通过以及提 ...

  4. 身份证验证信息15位或18位

    一.身份证号码的结构和表示形式 1.号码的结构 根据[中华人民共和国国家标准GB11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从 ...

  5. 15位或18位身份证验证

    c#实现的18位身份证格式验证算法 18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999<公民身份号码>中做了明确的规定. GB11643-1999< ...

  6. 【SQLServer】验证身份证号第18位校验码是否合法

    目录 1.业务场景 2.知识前提 3.实现方案 4.测试 5.参考链接 1.业务场景 参考国家标准GB 11643-1999,居民身份证号组成:6位数字地址码+8位数字出生日期码+3位数字顺序码+1位 ...

  7. Excel如何快速将15位身份证号码转为18位

    今天跟大家分享一下Excel如何快速将15位身份证号码转为18位 ​ 1.首先我们选中身份证号码单元格区域 2.点击[DIY工具箱] 3.点击[身份证]选择[15位身份证证升18位] 4.点击[确定] ...

  8. 16Aspx.com-将15位身份证转换成18位

    16Aspx.com-将15位身份证转换成18位 //************************************************************************* ...

  9. java后台证件号15转18位

    最近做一个小项目,涉及到证件号码的校验,虽然目前基本没有15位证件号码,但是项目要求还是需要把15位转18位的问题校验. 原始代码中,有关于15位转18位和18转15位校验的. 本次只涉及15转18位 ...

  10. HTML 传输 字符转换 进制转换 15位 18位 时间戳 转换

    <h1>中国</h1> ######################################## HTML字符实体 格式:&#ASCII码十进制数; <h ...

最新文章

  1. php进程通讯 windows,windows-server-2008 – PHP进程一次运行一个,总是占用一个核心的100%...
  2. getElementsByclassName
  3. 疯狂ios之cocos2d中的声音
  4. 软件设计模式—依赖注入
  5. P4126-[AHOI2009]最小割【网络流,tarjan】
  6. 怎么让织梦文章按照权重排序
  7. c语言指针填空题目,C语言指针题目实战
  8. 图片配置文件设置 索尼a7s2_16组Sony索尼系列相机Slog2和Slog3常用Vlog灰片视频电影LTUS调色预设...
  9. mysql索引统计信息更新_MySQL索引统计信息更新相关的参数
  10. 24.Plugin System
  11. 一个针对大学的程序设置表格项目在不断的更新
  12. 东北大学物流工程考研经验贴
  13. 融合应急指挥调度系统
  14. 饥荒联机版服务器启动慢_饥荒联机版大型攻略——简介与目录
  15. python中fact_python中fact函数是什么及如何使用?
  16. INF安装信息文件①
  17. 在Vue项目中使用LayUI教程且解决laydate无效的问题
  18. 智能眼镜是头戴式摄像机
  19. 《卓有成效的管理者》阅读心得
  20. 如何用多线程实现归并排序

热门文章

  1. 【内核】进程切换 switch_to 与 __switch_to
  2. 内核调试神器SystemTap — 更多功能与原理(三)
  3. 以太坊 node data write error_那个坚持写了四年《每周以太坊》的劳模分享关于以太坊的最新看法...
  4. 每日一道python的leetcode:冒泡排序
  5. hadoop fs.trash 详解
  6. poi导入到mysql_POI解析Excel导入数据到mysql
  7. mysql 完整性的概念_MySQL中一些深入概念整理
  8. 打开含avi格式视频文件的文件夹“死机”问题的解决
  9. Gradle 插件Debug调试
  10. 基于SpringBoot的后台管理系统(Encache配置、全局异常处理(重点))(四)