3.5 使用RegularExpressionValidator控件
RegularExpressionValidator控件用于把表单字段的值和正则表达式进行比较。正则表达式可用于表示字符串模式,比如电子邮件地址、社会保障号、电话号码、日期、货币数和产品编码。
例如,代码清单3-13中的页面可用于验证电子邮件地址(见图3-11)。
代码清单3-13 ShowRegularExpressionValidator.aspx
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Show RegularExpressionValidator</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label
id="lblEmail"
Text="Email Address:"
AssociatedControlID="txtEmail"
Runat="server" />
<asp:TextBox
id="txtEmail"
Runat="server" />
<asp:RegularExpressionValidator
id="regEmail"
ControlToValidate="txtEmail"
Text="(Invalid email)"
ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
Runat="server" />
<br /><br />
<asp:Button
id="btnSubmit"
Text="Submit"
Runat="server" />
</div>
</form>
</body>
</html>

图3-11 验证电子邮件地址
像下面这样的正则表达式被赋值给RegularExpressionValidator控件的ValidationExpression属性:
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
正则表达式阅读起来比较无味。该模式匹配简单的电子邮件地址。\w表达式表示任何非空白字符,因此,这个表达式模糊匹配包含了非空白字符的电子邮件地址,接下来是一个@符号,接下来是非空白字符,接下来是句号,接下来又是非空白字符。
注解 因特网上存在着数量巨大的正则表达式,找到好的正则表达式模式的最容易途径是在Google上搜索一下。
像其他验证控件一样,RegularExpressionValidator不会验证没有值的表单字段。要使表单字段必填,必须为表单字段关联RequiredFieldValidator控件。
|






