RegularExpressionValidator有两种主要的属性来进行有效性验证。ControlToValidate 包含了一个值进行验证。如取出文本框中的值。如ControlToValidate="TextBox1" ValidationExpression 包含了一个正则表达式进行验证。
好了,有了上面的叙述,我们就举个例子来说明正则表达式。比如,我们想要对用户输入的电子邮件进行校验,那么,什么样的数据才算是一个合法的电子邮件呢?我可以这样输入:test@yesky.com,当然我也会这样输入:xxx@yyy.com.cn,但是这样的输入就是非法的:xxx@@com.cn或者@xxx.com.cn,等等,所以我们得出一个合法的电子邮件地址至少应当满足以下几个条件:
1. 必须包含一个并且只有一个符号“@”
2. 第一个字符不得是“@”或者“.”
3. 不允许出现“@.”或者.@
4. 结尾不得是字符“@”或者“.”
所以根据以上的原则和上面表中的语法,我们很容易的就可以得到需要的模板如下:"= "^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$"
请看validata6.aspx的内容:
<!--源文件:form\web页面简介\validate6.aspx-->
</head>
<body>
<center><h3><font face="Verdana">使用正则表达式验证</font></h3></center>
<p>
<form runat="server">
<center>
<title>使用正则表达式验证</title>
<table bgcolor="#eeeeee" cellpadding=10>
<tr valign="top">
<td colspan=3>
<asp:Label ID="lblOutput" Text="输入E-mail地址" Font-Name="Verdana" Font-Size="10pt" runat="server"/>
</td>
</tr>
<tr>
<td align=right>
<font face=Verdana size=2>E-mail:</font>
</td>
<td>
<ASP:TextBox id=TextBox1 runat=server />
</td>
<td>
<asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server"
ControlToValidate="TextBox1"
ValidationExpression="^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$"
Display="Static"
Font-Name="verdana"
Font-Size="10pt">
请输入有效的E-mail地址!
</asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td></td>
<td>
<ASP:Button text="验证" OnClick="ValidateBtn_Click" runat=server />
</td>
<td></td>
</tr>
</table>
</center>
</form>
</body>
</html>
这样,我们只要定制不同的模板,就可以实现对不同数据的合法性校验了。所以,正则表达式对象中最重要的属性就是:“Pattern”属性,只要真正掌握了这个属性,才可以自由的运用正则表达式对象来为我们的数据校验进行服务。
程序的运行效果如图:
通过上面的介绍,我们对数据验证的方法有了一定的认识。在下面的内容中,我们还将通过更具体的实例,来对数据的有效性验证进行讲解。