RegularExpressionValidator 控件检查输入控件的值是否匹配正则表达式定义的模式。这类验证允许您检查可预知的字符序列,比如电子邮件地址、电话号码和邮编中的字符序列。
说明: 如果输入控件为空,则表明验证成功。如果相关输入控件需要一个值,则除了使用 RegularExpressionValidator 控件外,还须使用 RequiredFieldValidator 控件。
除非浏览器不支持客户端验证,或者已明确禁用客户端验证(通过将 EnableClientScript 属性设置为 false),否则将同时执行服务器端和客户端验证。
与服务器相比,客户端的正则表达式验证实现略有不同。在客户端,使用的是 JScript 正则表达式语法。而在服务器端,使用的则是 System.Text.RegularExpressions.Regex 语法。由于 JScript 正则表达式语法是 System.Text.RegularExpressions.Regex 语法的子集,因此建议使用 JScript 正则表达式语法,以便在客户端和服务器都得到同样的结果。
说明: 当使用 UpdatePanel 控件内部的 RegularExpressionValidator 控件时,请确保该验证程序控件与关联的控件位于同一面板中。
示例
下面的示例演示如何使用 RegularExpressionValidator 控件验证一个五位数的邮编。
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html >
<head>
<title>RegularExpressionValidator Example</title>
<script runat="server">
void ValidateBtn_Click(Object sender, EventArgs e)
{
if (Page.IsValid)
{
lblOutput.Text = "Page is Valid.";
}
else
{
lblOutput.Text = "Page is InValid.";
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<h3>RegularExpressionValidator Example</h3>
<table style="background-color:#eeeeee; padding:10">
<tr valign="top">
<td colspan="3">
<asp:Label ID="lblOutput"
Text="Enter a 5-digit ZIP Code"
runat="server"
AssociatedControlID="TextBox1"/>
</td>
</tr>
<tr>
<td colspan="3">
<b>Personal Information</b>
</td>
</tr>
<tr>
<td align="right">
Zip Code:
</td>
<td>
<asp:TextBox id="TextBox1"
runat="server"/>
</td>
<td>
<asp:RegularExpressionValidator id="RegularExpressionValidator1"
ControlToValidate="TextBox1"
ValidationExpression="/d{5}"
Display="Static"
ErrorMessage="ZIP code must be 5 numeric digits"
EnableClientScript="False"
runat="server"/>
</td>
</tr>
<tr>
<td></td>
<td>
<asp:Button text="Validate"
OnClick="ValidateBtn_Click"
runat="server" />
</td>
<td></td>
</tr>
</table>
</form>
</body>
</html>