WPF手机号码的验证

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(匹配),如果不准确匹配的格式不规范它就会提示用户“手机号码格式不对,请重新输入”同时我们会进行清空手机号码,这样就不需要我们去删除了。
输入的格式有误,弹出提示框。如下图:
在这里插入图片描述
总结:手机号码的验证就是这样编写的,这样的验证在很多地方都可以用到,其中验证号码的难点就在于正则表达式的格式写法,有一句话是这样说的,会正则表达式就走遍天下。因为正则在我们日常项目中是用来验证和判断最多的了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
WPF 中,数据验证是一个重要的主题。WPF 中的数据验证分为两种:验证数据模型和验证用户界面输入。前者通常是通过使用数据模型中的属性和方法来完成的,而后者通常是通过使用 WPF 的数据绑定功能来完成的。 在本文中,我们将重点讨论如何使用 WPF 的数据绑定功能来验证用户界面输入。 WPF 中的数据绑定提供了两种验证方式:基于属性的验证和基于规则的验证。基于属性的验证是针对单个属性进行的验证,而基于规则的验证则是针对整个对象进行的验证。 基于属性的验证可以通过设置属性的 Metadata 来实现。例如,可以使用 RequiredAttribute 来标记属性为必填项。当用户尝试提交表单并且未填写必填项时,WPF 将会自动显示错误提示信息。 基于规则的验证可以通过实现 IDataErrorInfo 接口来实现。该接口包含两个属性:Error 和 Item。Error 属性用于返回整个对象的错误信息,而 Item 属性用于返回单个属性的错误信息。 下面是一个示例,演示如何使用 IDataErrorInfo 接口来实现基于规则的验证: ```csharp public class Person : IDataErrorInfo { public string Name { get; set; } public int Age { get; set; } public string this[string columnName] { get { string error = null; switch (columnName) { case "Name": if (string.IsNullOrEmpty(Name)) error = "Name is required."; break; case "Age": if (Age < 0 || Age > 120) error = "Age must be between 0 and 120."; break; } return error; } } public string Error { get { return null; } } } ``` 在上面的示例中,我们实现了 IDataErrorInfo 接口,并使用 switch 语句检查每个属性的值。如果属性的值不符合要求,我们就返回一个错误信息。在 XAML 中,可以使用 Binding.ValidationRules 属性来指定要使用的验证规则。 ```xaml <TextBox Text="{Binding Path=Name, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" /> <TextBox Text="{Binding Path=Age, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" /> ``` 在上面的示例中,我们将 ValidatesOnDataErrors 属性设置为 True,以启用基于规则的验证。当用户尝试提交表单时,WPF 将自动检查数据模型中的属性并显示错误提示信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值