身份证验证

匿名 (未验证) 提交于 2019-12-02 23:34:01

身份证验证
附:身份证组成规则
根据《中华人民共和国国家标准GB 11643-1999》中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。顺序码的奇数分给男性,偶数分给女性。校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。


首先写出身份证号,出生日期,年龄,性别几个下拉框并给身份证号写个文本框改变事件
TextChanged=“txt_idCar_TextChanged”,

转到后台身份证号写个文本框改变事件
首先,获取 获取身份证所输入的值
string strShenFengzheng = txt_idCar.Text.Trim();
然后,用if语句判断当输入身份证的值到达18位时,用正则判断身份证号是否符合规定,如果不符合则弹出提示框,提示身份证不合法
if (strShenFengzheng.Length == 18)
{
if (!Regex.IsMatch(strShenFengzheng,@"(\d{15}$)|(^\d{18}$)|(\d{17}(\d|X|x))|(^\d{18})"))
{
MessageBox.Show(“身份证不合法!”);
//清空文本框
txt_idCar.Text = “”;
}
else

{
string keys = strShenFengzheng;
//性别
int sex = int.Parse(keys.Substring(16, 1));
//年
string day_year = keys.Substring(6, 4);
//月
string day_mon = keys.Substring(10, 2);
//日
string day_day = keys.Substring(12, 2);
ListViewItem l = new ListViewItem();
//绑定出生日期
dtp_Birthday.Text = day_year + “年” + day_mon + “月” + day_day + “日”;
//绑定年龄
//1.0 获取今年的年份
string strJinNian = DateTime.Now.Year.ToString();
//1.1 把获取的年份转换成数字
decimal NumJinNian = Convert.ToInt32(strJinNian);
//1.2获取身份证的出生年份
decimal NumShenFengZhen = Convert.ToInt32(day_year);
//1.3获取年龄
decimal NianLi = Convert.ToInt32(NumJinNian -
NumShenFengZhen);
//1.4绑定年龄
txt_Age.Text = NianLi.ToString().Trim();
//绑定性别
//1.1 取余
if (sex % 2 == 0)
{
cbo_gender.SelectedValue = 77; //(女)//77跟下拉框I对应
}
else if (sex % 2 != 0)
{
cbo_gender.SelectedValue = 76;//男 76跟下拉框ID值对应
}
}
}
}
catch (Exception)
{
throw;
}
}

文章来源: https://blog.csdn.net/weixin_44550873/article/details/90313134
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!