RegularExpressionValidator

RegularExpressionValidator

原文:RegularExpressionValidator控件

★搜Asp.net★(www.soAsp.net),为专业技术文档网站。
包括Asp.net开发技术文档·C#开发技术文档·Access/SQL Server数据库开发技术文档·VB.NET开发技术文档。
还包括·项目实战经验总结·开发经验技巧总结·项目开发心得。
RegularExpressionValidator控件

1.功能

RegularExpressionValidator控件用于检查输入控件是否与指定的正则表达式的值相匹配。验证类型可以检查各种数字是否正确、输入的字符串位数、输入日期格式和电话号码等等。

2.  属性

RegularExpressionValidator控件部分常用属性及说明如表1所示。

表1 RegularExpressionValidator控件最常用的属性

属性

描述

ControlToValidate

该属性获取或设置要验证的输入控件

Display

该属性获取或设置验证控件中错误信息的显示行为

ErrorMessage

该属性获取或设置验证失败时 ValidationSummary 控件中显示的错误信息的文本

Text

该属性获取或设置验证失败时验证控件中显示的文本

ValidationExpression

该属性获取或设置确定字段验证模式的正则表达式

RegularExpressionValidator控件的部分属性与RequiredFieldValidator控件的属性基本相同。下面介绍RegularExpressionValidator控件特有的属性,ValidationExpression属性。

该属性获取或设置被指定为验证条件的正则表达式。默认值为空字符串("")。

语法:

public string ValidationExpression { get; set; }

属性值;被指定为验证条件的正则表达式。

常用的正则表达式字符及其含义如表2所示。

表2 常用正则表达式字符及其含义

正则表达式字符

描述

[……]

匹配括号中的任何一个字符

[^……]

匹配不在括号中的任何一个字符

\w

匹配任何一个字符(a~z、A~Z和0~9)

\W

匹配任何一个空白字符

\s

匹配任何一个非空白字符

\S

与任何非单词字符匹配

\d

匹配任何一个数字(0~9)

\D

匹配任何一个非数字(^0~9)

[\b]

匹配一个退格键字母

{n,m}

最少匹配前面表达式n次,最大为m次

{n,}

最少匹配前面表达式n次

{n}

恰恰匹配前面表达式为n次

?

匹配前面表达式0或1次{0,1}

+

至少匹配前面表达式1次{1,}

*

至少匹配前面表达式0次{0,}

|

匹配前面表达式或后面表达式

(…)

在单元中组合项目

^

匹配字符串的开头

$

匹配字符串的结尾

\b

匹配字符边界

\B

匹配非字符边界的某个位置

下面再来列举几个常用的正则表达式。

  • 验证电子邮件:

\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
  • 验证网址:

HTTP://\S+\.\S+
  • 验证邮政编码:

\d{6}
  • [0-9]:表示0~9十个数字。
  • \d*:表示任意个数字。
  • \d{3,4}-\d{7,8}:表示中国大陆的固定电话号码。
  • \d{2}-\d{5}:验证由两位数字、一个连字符再加5位数字组成的ID号。
  • <\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\l\s*>:匹配HTML标记。
  • 身份证:\d{17}[\d|X]|\d{15}

示例  ValidationExpression属性设置

本例实现的是,设置RegularExpressionValidator控件的ValidationExpression属性来验证文本框中输入的Email格式是否正确。

代码如下。

  protected void Page_Load(object sender, EventArgs e)
    {
      this.RegularExpressionValidator1.ControlToValidate = "txtEmail";//在验证控件的ID
        this.RegularExpressionValidator1.ErrorMessage = "邮箱格式不正确";
        this.RegularExpressionValidator1.ValidationExpression = "\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Write("<script>alert('密码已发送到邮箱,请注意查收')</script>");
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Response.Write("<script>window.close();</script>");
    }

3. 典型实例

例1 验证URL

本例使用RegularExpressionValidator控件和正则表达式验证输入的网址是否正确。运行本实例,在文本框中输入http:///soasp错误网址,然后单击“验证”按钮。

代码如下。

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox1" 
   ErrorMessage="URL地址输入不正确!" ValidationExpression='http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?'></asp:RegularExpressionValidator> 
   <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" 
   ErrorMessage="URL地址输入不能为空!">
</asp:RequiredFieldValidator>

例2  验证手机号码

本例实现了使用RegularExpressionValidator控件和正则表达式验证手机号码的格式是否正确。运行本实例,在文本框中输入错误的手机号码格式,单击“验证”按钮。

主要代码如下。

<table>
 <tr>
   <td>              
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1"
                        ErrorMessage="手机号输入不能为空!" Width="161px"></asp:RequiredFieldValidator></td>
                <td>
                    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox1"  ErrorMessage="手机号输入错误!" ValidationExpression="^[1]+[3,5]+\d{9}"></asp:RegularExpressionValidator>
   </td>
 </tr>
</table>

04-14 04:42