身份证号码验证
来源:互联网 发布:单片机 interrupt用法 编辑:程序博客网 时间:2024/04/29 18:40
//说明:验证身份证的有效性
//参数: cid -身份证号码
//返回: 地方-出生时间-性别
private string CheckCidInfo(string cid)
{
//输入限制
if (cid.Length != 18)
{
string warrnig = "";
warrnig = "身份证号码输入长度不正确!";
for (int i = 0; i < cid.Length - 1; i++)
{
if (cid[i]>'9'||cid[i ]<'0')
{
warrnig += "身份证号码中包含非法字符!";
return warrnig;
}
}
}
if (cid.Length == 18)
{
string warrnig = "";
for (int i = 0; i < cid.Length - 1; i++)
{
if (cid[i] > '9' || cid[i] < '0')
{
warrnig = "身份证号码中包含非法字符!";
return warrnig;
}
}
char c = cid [cid.Length -1];
bool last = false;
if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
{
last = true;
}
if (!last)
{
warrnig = "身份证末位号码中包含非法字符!";
last = false;
return warrnig;
}
}
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?"男":"女"));
}
- 验证身份证号码
- 身份证号码验证
- 验证身份证号码
- 身份证号码验证
- 验证身份证号码
- 身份证号码验证
- 验证身份证号码
- 身份证号码验证
- 身份证号码验证
- 验证身份证号码
- 身份证号码验证
- 身份证号码验证 !
- 验证身份证号码
- 验证身份证号码
- 验证身份证号码
- 身份证号码验证
- 身份证号码验证
- 身份证号码验证
- 数据库导入EXCEL
- Socket send函数和recv函数
- 开发人员任职要求(PG0~PM3)
- 一点感想及aix如何快速入门到精通(转)
- Excel导入数据库
- 身份证号码验证
- 遍历TEXTBOX
- GridView
- 图片剪切
- linux网络的基本配置
- 人为什么活着系列之十六:具体的人具体的环境具体分析
- 验证码生成
- HTML元素及控件事件一览表
- Spring-Quartz 任务调度理所当然的陷阱