码迷,mamicode.com
首页 > Web开发 > 详细

ASP.net验证控件

时间:2015-01-07 08:11:16      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

       ASP.net提供了6种验证控件,这些控件不但可以使程序员轻松地实现对用户输入的验证,而且还可以选择验证在服务器端进行还是在客户端进行。这6种验证控件分别是:

1.RequiredFieldValidator控件(空值验证):验证控件内是否有数据输入,它是非空验证控件

 属性:

ControlToValidate:必须赋值的属性,表示要进行验证的控件的ID

ErrorMessage:验证失败时显示的错误消息的文本

Display:错误消息的显示方式,该值是一个枚举值,有3个值:

Static,表示作为页面布局的物理组成部分验证程序内容

None,表示从不内联显示的验证程序内容

DyNamic,表示验证失败时动态添加到页面中的验证程序内容

EnableClientScript:指示是否启用客户端验证

 代码:

<tr>
   <td class="auto-style2">
       非空验证</td>
   <td class="auto-style3">
       用户名:</td>
   <td class="auto-style1">
   	<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
   	<asp:RequiredFieldValidator ID="rfv" runat="server" ErrorMessage="用户名不能为空!" ControlToValidate="txtUserName" Display="Dynamic" ForeColor="Red"></asp:RequiredFieldValidator>
   </td>
</tr>

2.CompareValidator控件(比较控件):对一个控件中的值与另一个控件中的值或某个常数值进行比较

 属性:

ControlToValidate:表示要进行验证的控件的ID

CultureInvariantValues:该值指示是否在比较之前将值转换为非特定区域性格式

Operator:要执行的比较操作,该值是一个枚举值

Equal:相等;NotEqual:不相等

GreaterThanEqual:大于;GreaterThanEqual:大于等于

LessThan:小于;LessThanEqual:小于等于

DataTypeCheck:输入到验证控件中的值与BaseCompareValidator.Type属性指定的数据类型之间的数据类型比较,如果无法将该值转换为指定的数据类型,则验证失败

Type:在比较之前将所比较的值转换到的数据类型

RenderUplevel:该值指示客户端的浏览器是否支持“上一级”呈现

Text:验证失败时控件中显示的文本

ValueToCompare:该值要与验证控件中的值进行比较

 代码:

<tr>
    <td class="auto-style2" rowspan="2">
        比较验证</td>
    <td class="auto-style3">
        密码:</td>
    <td class="auto-style1">
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="TextBox2" ControlToValidate="TextBox3" ErrorMessage="两次密码不一致!" ForeColor="Red"></asp:CompareValidator>
    </td>
</tr>
<tr>
    <td class="auto-style3">
        重复密码:</td>
    <td class="auto-style1">
        <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
    </td>
</tr>

3.RangeValidator控件(范围验证):验证用户的输入是否在指定的范围内。它可以检查数字对、字幕对和日期对限定的范围,其中边界表示为常数。

 属性:

MaximumValue:验证范围的最大值

MinimumValue:验证范围的最小值

 代码:

<tr>
    <td class="auto-style2">范围验证</td>
    <td class="auto-style3">年龄:</td>
    <td class="auto-style1">
        <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
        <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="TextBox4" ErrorMessage="您的年龄不在注册范围内,请不要注册!" ForeColor="Red" MaximumValue="50" MinimumValue="20"></asp:RangeValidator>
    </td>
</tr>

4.RegularExpressionValidator控件(正则表达式):验证控件的值是否与某个正则表达式所定义的模式相匹配。通过这种类型的验证,可以检查可预知的字符序列,如身份证号码、点知邮件地址、电话号码、邮政编码等的字符序列。

      正则表达式(ValidationExpression):是由普通字符与特殊字符组成的文字模式,该模式描述在查找文字主体时待匹配的一个活多个字符串,正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。ValidationExpression属性中用到的字符表示如下:

"\w"表示任何单字符匹配,包括下划线;

"+" 表示匹配前一个字符一次或多次

"." 表示任意字符;

"*" 表示和其他表达式一起,表示容易组合;

"[A-Z]" 表示任意大写字母;

"\d" 表示一个数字;

"^" 表示匹配输入的开始位置

(在以上表达式中,引号不包括在内)

 代码:

<tr>
    <td class="auto-style2">正则表达式验证</td>
    <td class="auto-style3">邮箱:</td>
    <td class="auto-style1">
        <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
        <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox5" ErrorMessage="请输入正确的邮箱地址!" ForeColor="Red" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
    </td>
</tr>

5.CustomValidator控件(自定义验证):自定义函数验证

 属性:

ClientValidationFunction:验证的自定义客户端脚本函数的名称

ServarValidate:在服务器上执行验证时发生

 代码:

<tr>
    <td class="auto-style2">自定义验证</td>
    <td class="auto-style3">请任意填写一个偶数:</td>
    <td class="auto-style1">
        <asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
        <asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="TextBox6" ErrorMessage="请输入偶数!" OnServerValidate ="CumstomValidator" ForeColor="Red"></asp:CustomValidator>
    </td>
</tr>

 客户端验证:

   protected void CumstomValidator(object source, ServerValidateEventArgs args)
   {
      int i = Convert.ToInt32(args.Value);
      if (i%2==0)
      {
          args.IsValid = true;                
      }
      else
      {
          args.IsValid = false;
      }
   }

6.ValidationSummary控件(验证汇总):允许在单个位置概述网页上所有验证控件的错误消息。该控件的功能就是手机所有验证控件的错误信息然后显示到单个位置上。

      Validationsummary控件有许多用于显示错误信息模式和显示错误信息方式的属性,这些属性是其它验证控件所不具备的,它的显示信息由每个验证控件的ErrorMessage属性指定的

displayMode:验证摘要的显示模式,是一个枚举值

List,验证摘要显示在列表中

BulletList:验证摘要显示在项目符号列表中

SingleParagraph:验证摘要显示在单个段落内

ShowMessageBox:是否在消息框中显示验证摘要

ShowSummary:是否内联显示验证摘要

HeaderText:显示控件标题

 代码:

<tr>
    <td class="auto-style4">验证信息汇总</td>
    <td class="auto-style5" colspan="2">
        <asp:ValidationSummary ID="ValidationSummary1" runat="server" ForeColor="Red" ShowMessageBox ="true" />
    </td>
</tr>

实例效果:未点击“注册”按钮前

技术分享

填写错误的信息,点击“注册”按钮

技术分享

技术分享

小结:

    ASP.net的这6种验证控件,可以通过在属性页设置相应属性或代码来完成相应的操作,总体来说比较简单。验证控件是Web开发的基础知识,它在一定程序上保证了程序的健壮性和友好性,更方便了用户的使用,是BS学习的必备知识

 

PS:asp.net验证控件中常用的正则表达式:

   只能输入数字:“^[0-9]*$”

   只能输入n位的数字:“^\d{n}$”

   只能输入至少n位数字:“^\d{n,}$”

   只能输入m-n位的数字:“^\d{m,n}$”

   只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$”

   只能输入有两位小数的正实数:“^[0-9]+(.[0-9]{2}) $”

   只能输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3}) $”

   只能输入非零的正整数:“^+ [1-9][0-9]*$”

   只能输入非零的负整数:“^-[1-9][0-9]*$”

   只能输入长度为3的字符:“^.{3}$”

   只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$”

   只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$”

   只能输入由26个小写英文字母组成的字符串:“^[a-z]+$”

   只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$”

   只能输入由数字、26个英文字母或者下划线组成的字符串:“^\w+$”

   验证用户密码:“^[a-zA-Z]\w{5,17}$”正确格式为:以字母开头,长度在6-18之间, 只能包含字符、数字和下划线。

   验证是否含有^%&’,;= $”等字符:“[^%&‘,;= $x22]+”

   只能输入汉字:“^[u4e00-u9fa5],{0,}$”

   验证Email地址:“^\w+[-+.]\w+)*@\w+([-.]\w+)*.\w+([-.]\w+)*$”

   验证InternetURL:“^http://([\w-]+.)+[\w-]+(/[\w-./%&=]*) $”

   验证电话号码:“^((\d{3,4})|\d{3,4}-) \d{7,8}$”正确格式为:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”,“XXX-   XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。

   验证身份证号(15位或18位数字):“^d{15}|d{}18$”

   验证一年的12个月:“^(0 [1-9]|1[0-2])$”正确格式为:“01”-“09”和“1”“12”

   验证一个月的31天:“^((0 [1-9])|((1|2)[0-9])|30|31)$” 正确格式为:“01”“09”和“1”“31”。

 

ASP.net验证控件

标签:

原文地址:http://blog.csdn.net/wangjingna/article/details/42432149

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!