WPF手机号码的验证
最近在学习WPF的知识,其中在每一个项目中电话号码,身份证等都是必不可少的内容,然而为什么要进行验证呢?一个是可以保证用户的安全性和准确性,再来就是用户可以通过验证来知道知道自己在填写资料的时候有没有填写不规范或者是填写错误,漏填等事项。这次写手机号码的目的就是验证一下手机号码的规范性和准确性
先来看一下我要做的效果是如何的
看是简单的一个手机号码,每个人都知道是这样的,但是不一定每个人都知道电话号的构成又分为多少种,而且它们代表着是哪个公司的。并且每一种电话号码的规则是什么,其实在生活中我们的国际手机号码分为4种,有移动,联通,电信,还有一种就是虚拟运营商,这4中它们手机号码段有分为很多,其中国内手机号码的规则:前3位为网络识别号;第4-7位为地区编码;第8-11位为用户号码。现有手机号段:
移动:134 135 136 137 138 139 147 148 150 151 152 157 158 159 172 178 182 183 184 187 188 198
联通:130 131 132 145 146 155 156 166 171 175 176 185 186
电信:133 149 153 173 174 177 180 181 189 199
虚拟运营商:170
以上都是手机号码的规范性了,整理后:130~139,14[5-9],15[012356789],166,17[0-8] 18[0-9],19[8-9]你会发现其实都是0-9的数。但是14开头的后面只能是5-9的数,不可以说从0开始。这是不符合标准的。15开头的就可以从0开始一直到9结束。一个电话也是有很多学问的。现在看一下它是怎么样在页面中实现这样的效果的。
我们先来看一下页面代码是怎么构建的和它又有什么样的特殊字段。
页面图中用到TextBlock和TextBox来写联系电话,我们需要给联系电话一个名称叫:x:Name=“txt_PhoneNumber”,其次是设置一个TextChanged事件,并且手机号码的最大长度只有11位数字,目前对于国际的手机号码来说就是11位了。以后会是几位数我们再更改就可以了。所以我们设置一个最大长度叫做MaxLength,让它等于11位数字。
现在转到编码处,点击上图中的TextChanged文本改变事件鼠标右键点击查看代码,或者你可以点击TextChanged文本改变事件然后点击键盘上方的F12也是一样的。它就会为我们自动创建事件。在这里是要说明一下是:WPF是有两个端的,一个是客户端,一个是服务端,但是一般服务端都是用来写用户看不到的代码,只有操作员才可以登陆查看的。而我们这里的手机号码是不需要在服务端写,所以我们直接在客户端写我们需要的代码就可以了的。
如下代码:
上图的代码中我们用到的关键是正则的表达式来做验证,首先手机号码既然是验证那么要么是输入中验证,要么就是输入完再验证,但是一般都是边输入边验证是最好的,因为当你输入完了你都不知道你都输入的是哪里有误。
string strPhoneNumber = txt_PhoneNumber.Text.Trim();首先在验证之前我们要先获取页面的控件。而我们的控件就是txt_PhoneNumber,输入文本值。当我们的手机号码达到了11位才进行检测,如果我们前面还没有输入到11位就不开始检测,其次一定要它的长度等于11位,如果不进行判断的话每当你输入一个数字它就会跳动一次,会很麻烦,所以一定要判断一下并且长度等于11。等于11位时我们开始验证并且调用正则表达式(Regex)验证号码的准确性,IsMatch(匹配),如果不准确匹配的格式不规范它就会提示用户“手机号码格式不对,请重新输入”同时我们会进行清空手机号码,这样就不需要我们去删除了。
输入的格式有误,弹出提示框。如下图:
总结:手机号码的验证就是这样编写的,这样的验证在很多地方都可以用到,其中验证号码的难点就在于正则表达式的格式写法,有一句话是这样说的,会正则表达式就走遍天下。因为正则在我们日常项目中是用来验证和判断最多的了。
WPF手机号码的验证
于 2019-06-02 21:35:31 首次发布