private  string  CheckCidInfo(string  cid)
{
string[]  aCity  =  new  string[]{null,null,null,null,null,null,null,null,null,null,null,"北京","天津","河北","山西","内蒙古",null,null,null,null,null,"辽宁","吉林","黑龙江",null,null,null,null,null,null,null,"上海","江苏","浙江","安微","福建","江西","山东",null,null,null,"河南","湖北","湖南","广东","广西","海南",null,null,null,"重庆","四川","贵州","云南","西藏",null,null,null,null,null,null,"陕西","甘肃","青海","宁夏","新疆",null,null,null,null,null,"台湾",null,null,null,null,null,null,null,null,null,"香港","澳门",null,null,null,null,null,null,null,null,"国外"};
double  iSum=0;
string  info="";
System.Text.RegularExpressions.Regex  rg  =  new  System.Text.RegularExpressions.Regex(@"^\d{17}(\d|x)$");
System.Text.RegularExpressions.Match  mc  =  rg.Match(cid);
if(!mc.Success)
{
return  "";
}     
cid  =  cid.ToLower();
cid  =  cid.Replace("x","a");
if(aCity[int.Parse(cid.Substring(0,2))]==null)
{
return  "非法地区";
}
try
{
DateTime.Parse(cid.Substring(6,4)+"-"+cid.Substring(10,2)+"-"+cid.Substring(12,2));
}
catch
{
return  "非法生日";
}
for(int  i=17;i>=0;i--)
{       
iSum  +=(System.Math.Pow(2,i)%11)*int.Parse(cid[17-i].ToString(),System.Globalization.NumberStyles.HexNumber);

}
if(iSum%11!=1)
return("非法证号");
    
return(aCity[int.Parse(cid.Substring(0,2))]+","+cid.Substring(6,4)+"-"+cid.Substring(10,2)+"-"+cid.Substring(12,2)+","+(int.Parse(cid.Substring(16,1))%2==1?"男":"女"));
  
}

全封装好的!!!复制到c#就可以用

c# 18位身份证源代码相关推荐

  1. javascript 15位和18位身份证的正则表达式及其验证

    1.简单的正则表达式: (1)preg_match("/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/",$id_card) (2)preg_match(& ...

  2. excel表格中18位身份证号码如何转换成出生日期

    1.获取出生日期,如果Excel表上,如果A1为身份证号码. =IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2)&&quo ...

  3. 学习正则表达式 - 18位身份证号

    一.身份证号规则 18位身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码.其含义如下: 地址码:表示编码 ...

  4. 18位身份证号验证算法的原理以及C#实现和在管理系统的应用

    18位身份证号验证算法的原理以及C#实现和在管理系统的应用 本博文介绍一下我自主开发的企业工资管理系统中关于员工18身份证号合法性验证的原理以及采用C#实现的代码.在实际的管理系统中应用!经过我自己的 ...

  5. 关于18位身份证号码最后一位计算(Java实现)

    关于18位身份证号码最后一位计算(Java实现) 现代的身份证号码长度都是18位的,但是只要知道前17位便可推出第18位数字或者字母(第18位为0,1,...,9和X中的一个).也就是说,国内不存在前 ...

  6. 18位身份证号码最后一位校验

    1 package com.jdk7.chapter5; 2 3 /** 4 * 仅能校验15位或18位身份证号的校验码 5 * @author Administrator 6 * 7 */ 8 pu ...

  7. 18位身份证号编码规则最后一位

    例如某18位身份证号为:ABCDEF YYYY MMDD SSSV 第1位--第6位代表(ABCDEF):表示区域. 第7位--第14位(YYYYMMDD):表示出身日期,例如20140809. 第1 ...

  8. C#一个完整判断18位身份证号正确函数

    C#一个完整判断18位身份证号正确函数 private static bool CheckIDCard18(string CardId){string pattern = @"^\d{17} ...

  9. 15/18位身份证号码验证的正则表达式总结(详细版)

    前言 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 介绍 xxxxxx yyyy MM d ...

最新文章

  1. 基于改进的点对特征的6D位姿估计
  2. 卷积滤波 英文_《信号与系统》专业术语中英文对照表
  3. 【C/C++多线程编程之四】终止pthread线程
  4. 关于字符串排序的别的规则
  5. Elastic-Job发展历史
  6. python正则表达式快速入门_Python学习笔记——正则表达式入门
  7. hash table(开放寻址法-双重散列实现的哈希表)
  8. java sequencefile_Hadoop SequenceFile数据结构介绍及读写
  9. 一款强大的cisco模拟配置、拓扑制作工具
  10. 兔子问题JAVA编程题
  11. 谷歌大脑组合模型霸榜 SuperGLUE
  12. Sensor框架理解
  13. Julia :PyPlot的plot_date
  14. 小程序定制开发和模板软件的区别和优势
  15. 关于让div元素垂直居中的几种方法
  16. java smali代码 解读_Smali代码语法
  17. 计算机里的wps云盘和网盘怎么删除,电脑里的wps网盘图标怎么删除?让你的云端文档更安全!...
  18. 网络编程中,同步传输和异步传输有什么区别
  19. JavaScript面试题111-120
  20. JAVA设计模式之备忘录模式

热门文章

  1. mysql ibdata作用_mysql data文件夹下ibdata1 文件作用
  2. Visual Studio警告IDE0006的解决办法
  3. oracle 函数参数类型,ORACLE 11g中的表值函数? (参数化视图)
  4. jforum oracle报错,JForum安装在Oracle数据库上
  5. qgc地面站如何导入离线地图_QGC地面站工具下载 QGroundControl(QGC地面站软件) v2018.11.02 免费安装版 下载-脚本之家...
  6. 陪孩子一起学python第二季_陪伴作文开头和结尾
  7. idea自动生成get set_CTO:不要在Java代码中写set/get方法了,逮一次罚款
  8. BCI里程碑!脑机接口首次让患者输出完整句子
  9. 韩春雨,时隔六年再发高分论文
  10. 苹果:AMD yes!官方开售显卡模块,价格1.8万起