如何:根据模式对 ASP.NET 服务器控件进行验证
更新:2007 年 11 月
您可以检查用户输入是否匹配预定义的模式,例如电话号码、邮编、电子邮件地址等等。要进行这一验证,需要使用正则表达式。有关正则表达式的更多信息,请参见 .NET Framework 正则表达式。
![]() |
---|
默认情况下,ASP.NET 网页自动验证是否有恶意用户试图向您的应用程序发送脚本或 HTML 元素。有关更多信息,请参见脚本侵入概述。 |
对照正则表达式进行验证
将 RegularExpressionValidator 控件添加到页中并设置下列属性:
属性
说明
正在验证的控件的 ID。
这些属性指定验证失败时要显示的错误的文本和位置。有关详细信息,请参见如何:控制 ASP.NET 服务器控件的验证错误信息显示。
通过将 ValidationExpression 属性设置为正则表达式来设置要比较的模式。
说明:
如果您正在使用诸如 Visual Studio .NET 2005 这样的可视化设计器,您可以从 RegularExpressionValidator 控件中定义的预定义模式中选择。
如果要允许多种有效模式,请使用条形符 (|) 来分隔表达式。
说明:
在客户端验证中,使用 ECMAScript (JavaScript) 计算正则表达式。这与服务器端的正则表达式检查略有不同。
在 ASP.NET 网页代码中添加测试,以检查有效性。有关详细信息,请参见如何:以编程方式测试 ASP.NET 服务器控件的有效性。
下面的代码示例显示如何使用 RegularExpressionValidator 控件检查用户是否输入了有效的美国邮政编码。验证器检查两种模式:5 位数字和 5 位数字加连字符再加另外 4 位数字。
ZIP: <asp:TextBox id="txtZIP" runat="SERVER"></asp:TextBox> <asp:RegularExpressionValidator id="txtZIP_validation" runat="SERVER" ControlToValidate="txtZIP" ErrorMessage="Enter a valid US ZIP code." ValidationExpression="\d{5}(-\d{4})?"> </asp:RegularExpressionValidator>
ZIP: <asp:TextBox id="txtZIP" runat="SERVER"></asp:TextBox> <asp:RegularExpressionValidator id="txtZIP_validation" runat="SERVER" ControlToValidate="txtZIP" ErrorMessage="Enter a valid US ZIP code." ValidationExpression="\d{5}(-\d{4})?"> </asp:RegularExpressionValidator>