日期:2014-01-13  浏览次数:21045 次

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="验证"  runat=server />
      </td>
      <td></td>
    </tr>
    </table>
</center>
</form>
</body>
</html>

   这样,我们只要定制不同的模板,就可以实现对不同数据的合法性校验了。所以,正则表达式对象中最重要的属性就是:“Pattern”属性,只要真正掌握了这个属性,才可以自由的运用正则表达式对象来为我们的数据校验进行服务。
程序的运行效果如图:



    通过上面的介绍,我们对数据验证的方法有了一定的认识。在下面的内容中,我们还将通过更具体的实例,来对数据的有效性验证进行讲解。