这篇文章主要介绍了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('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.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;//正确    }

总结

更多相关文章

  1. C#中的正则表达式如何验证中文字符的实例
  2. 关于ASP.NET如何利用AjaxPro完成前端跟后台交互的实例分析
  3. asp.net如何利用ashx生成图形验证码的实例
  4. 制作NetCore WebSocket即时通讯实例详解
  5. 利用ashx生成图形验证码实例教程
  6. ASP.NET如何实现进度条效果的实例讲解
  7. C#如何实现自动更新本地程序的实例分析
  8. .net验证后台页面是否登录实例教程
  9. 实例分析ASP.NET在MVC5中使用MiniProfiler监控MVC性能的方法

随机推荐

  1. Android(安卓)-- Camera源码简析,启动流程
  2. 开源中国-android软件资源整理
  3. ProgressDialog
  4. 开发中常用到的几处代码设置
  5. [AndroidTips]Keep Screen On in Android
  6. android案例
  7. asdsadsa
  8. android 去掉listview之间的黑线
  9. android各大分享平台地址
  10. Android自定义九宫格图案解锁