c# 18位身份证源代码
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位身份证源代码相关推荐
- javascript 15位和18位身份证的正则表达式及其验证
1.简单的正则表达式: (1)preg_match("/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/",$id_card) (2)preg_match(& ...
- excel表格中18位身份证号码如何转换成出生日期
1.获取出生日期,如果Excel表上,如果A1为身份证号码. =IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2)&&quo ...
- 学习正则表达式 - 18位身份证号
一.身份证号规则 18位身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码.其含义如下: 地址码:表示编码 ...
- 18位身份证号验证算法的原理以及C#实现和在管理系统的应用
18位身份证号验证算法的原理以及C#实现和在管理系统的应用 本博文介绍一下我自主开发的企业工资管理系统中关于员工18身份证号合法性验证的原理以及采用C#实现的代码.在实际的管理系统中应用!经过我自己的 ...
- 关于18位身份证号码最后一位计算(Java实现)
关于18位身份证号码最后一位计算(Java实现) 现代的身份证号码长度都是18位的,但是只要知道前17位便可推出第18位数字或者字母(第18位为0,1,...,9和X中的一个).也就是说,国内不存在前 ...
- 18位身份证号码最后一位校验
1 package com.jdk7.chapter5; 2 3 /** 4 * 仅能校验15位或18位身份证号的校验码 5 * @author Administrator 6 * 7 */ 8 pu ...
- 18位身份证号编码规则最后一位
例如某18位身份证号为:ABCDEF YYYY MMDD SSSV 第1位--第6位代表(ABCDEF):表示区域. 第7位--第14位(YYYYMMDD):表示出身日期,例如20140809. 第1 ...
- C#一个完整判断18位身份证号正确函数
C#一个完整判断18位身份证号正确函数 private static bool CheckIDCard18(string CardId){string pattern = @"^\d{17} ...
- 15/18位身份证号码验证的正则表达式总结(详细版)
前言 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 介绍 xxxxxx yyyy MM d ...
最新文章
- 基于改进的点对特征的6D位姿估计
- 卷积滤波 英文_《信号与系统》专业术语中英文对照表
- 【C/C++多线程编程之四】终止pthread线程
- 关于字符串排序的别的规则
- Elastic-Job发展历史
- python正则表达式快速入门_Python学习笔记——正则表达式入门
- hash table(开放寻址法-双重散列实现的哈希表)
- java sequencefile_Hadoop SequenceFile数据结构介绍及读写
- 一款强大的cisco模拟配置、拓扑制作工具
- 兔子问题JAVA编程题
- 谷歌大脑组合模型霸榜 SuperGLUE
- Sensor框架理解
- Julia :PyPlot的plot_date
- 小程序定制开发和模板软件的区别和优势
- 关于让div元素垂直居中的几种方法
- java smali代码 解读_Smali代码语法
- 计算机里的wps云盘和网盘怎么删除,电脑里的wps网盘图标怎么删除?让你的云端文档更安全!...
- 网络编程中,同步传输和异步传输有什么区别
- JavaScript面试题111-120
- JAVA设计模式之备忘录模式
热门文章
- mysql ibdata作用_mysql data文件夹下ibdata1 文件作用
- Visual Studio警告IDE0006的解决办法
- oracle 函数参数类型,ORACLE 11g中的表值函数? (参数化视图)
- jforum oracle报错,JForum安装在Oracle数据库上
- qgc地面站如何导入离线地图_QGC地面站工具下载 QGroundControl(QGC地面站软件) v2018.11.02 免费安装版 下载-脚本之家...
- 陪孩子一起学python第二季_陪伴作文开头和结尾
- idea自动生成get set_CTO:不要在Java代码中写set/get方法了,逮一次罚款
- BCI里程碑!脑机接口首次让患者输出完整句子
- 韩春雨,时隔六年再发高分论文
- 苹果:AMD yes!官方开售显卡模块,价格1.8万起