作者:孙英鹏 撰写时间:2019年6月24日
在做项目的时候可能会有一些模块是员工信息,这时就会有输入身份证号码获取到出生日期、年龄、性别和地址的功能,对于这些功能要怎么做,我们来看一下。
第一步:创建一个窗口页面,在窗口页面编写出身份证输入框、出生日期输入框、年龄输入框和性别输入框和地址输入框,创建完之后,就给身份证添加限制输入长度的代码,为的是不让我们输入过多的数字,从而限制输入长度,由于现在的身份证是二代身份证了,所以一般都是十八位而不是十位,写好之后就写触发事件跳转到后台。
代码:
<TextBlock Text="身份证号:" Grid.Column="0" Grid.Row="5"/>
<!--MaxLength:限制输入长度-->
<TextBox Grid.Column="1" Grid.Row="5" x:Name="txt_idCar" MaxLength="18"
TextChanged="txt_idCar_TextChanged"/>
第二步: 首先创建一个类用来装身份证的所在地址和前6位号码和根据号码获得身份证地址的内容,关于身份证的所在地址和前6位号码是老师在网上找来的,所以我也是搬过来用的,你们就上网找代码。现在再来说一下根据前6位号码获得身份证地址,首先是判断一下是否输入到6位号码,然后在获取身份证的所在地址和号码就行了。
代码:
/// <summary>
/// 根据号码获得身份证地址
/// </summary>
/// <param name="Numb6">身份证前6位</param>
/// <returns></returns>
public static string LoadAddress(string p_Numb6)
{
if (p_Numb6.Length == 6)
{
if (_Sfz.Count == 0) LoadSfzHashTable();
object _Address = _Sfz[p_Numb6];
if (_Address == null) return "";
return _Address.ToString();
}
return "";
}
创建完类之后,就在后台编写实现输入身份证获取出生日期、年龄和性别和地址的代码。首先验证身份证准确性,然后是闰年出生日期的合法性正则表达式和平年出生日期的合法性正则表达式,然后在是切割字符串、性别、取余,这里的取余是因为数据库的性别是和其他的数据和在一起所创建的表,然后取对应的ID值,然后在是年月日、绑定出生日期、获取今年年份、把今年转化成数字、获取(截取身份证)出生年份、获取虚岁、绑定年龄,然后在获取那边的类进行判断,错误的就重置查询框,正确就获取信息。
代码: