XAML 文本框验证身份证

13 篇文章 0 订阅

开发工具与关键技术:WPF XAML C# 正则
作者:李寿宇
撰写时间:2019/5/14
18位身份证验证:
在新增页面录入资料时特别是个人资料需要输入身份证、联系地址和出生日期······
文本框输入身份证时在输入的过程中录入错误的身份证导致输入的数据不真实。我们在新增数据就作个判断用户输入的身份证是否合法,身份证前六位是个地址码首先判断用户输入前六位地址码号码时是否真确,如果不真确弹出提示框“你输入的身份证号码不合法,请重新输入!”。
如果前面的六位地址码输入正确了我们做剩下12位数做操作了,7位~12位是出生年月日然后根据7位~12位数来回填出生日期的操作,获取当前日期减去出生日期得出年龄把年龄回填到年龄文本框里,身份证倒数第二位性别单数是男的双数是女的,获取身份证17位数字拿他进行判断是否单双数如果是单数回填男否则是女的。

在XAML新增页面身份证文本框添加TextChanged=“txt_idCar_TextChanged” 文本改变事件,在文本事件上转到定义进行编写代码。

1、 首先封装好地址码,当用户输入六位身份证号时那六位数在封装好的类里面进行匹配,匹配上就返回身份证前六位的地址识别码把返回的地址回填到地址文本框里 ,、如果匹配不上弹出提示框“你输入的身份证号码不合法,请重新输入!”
代码如下

if (txt_idCar.Text.ToString().Length == 6)
            {
                string strAddress = 							CheckIDCardGetDiQu.LoadAddress(txt_idCar.Text.ToString());
                if (strAddress == "")
                {
                    MessageBox.Show("你输入的身份证号码不合法,请重新输入!");
                }
                else
                {
                    txt_Address.Text = strAddress;
                }
            }
            if (txt_idCar.Text.ToString().Length < 6)
            {
                txt_Address.Text = "";
            }

2、 使用正则表达式判断身份证了如果匹配得上就会填出生日期、年龄和性别,否则弹出提示框MessageBox.Show(“身份证不合法!”);
用正则代码判断如下:
//正则表达式
i

f (!Regex.IsMatch(strIdCard, @"(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)"))
     {
         MessageBox.Show("身份证不合法!");
         txt_idCar.Text = "";
     }

3、出生日期、年龄和性别采用字符串截取方式来进行会填。代码如下:
	  

string keys = strIdCard;
           int sex = int.Parse(keys.Substring(16, 1)); //性别 
           string birth_y = keys.Substring(6, 4); //年 
           string birth_m = keys.Substring(10, 2); //月
           string birth_d = keys.Substring(12, 2); //日
           ListViewItem l = new ListViewItem();
		  //绑定出生日期 
           dtp_Birthday.Text = birth_y + "年" + birth_m + "月" + birth_d + "日"; 
           txt_Age.Text = decAge.ToString().Trim();//绑定年龄
           if (sex % 2 == 0) //取余
            {
                cbo_gender.SelectedValue = 77;//77跟下拉框ID值对应 女
            } 
             else
            {
                cbo_gender.SelectedValue = 76;//76跟下拉框ID值对应 男
            }


4、如下图效果既验证了身份证有会填了个人一些信息

在这里插入图片描述

5、如果输入的身份证前六位不是身份证的地址码会弹出提示框提示错误
如下图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值