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+)* | - [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> | |