如何在文本框上使用RegularExpressionValidator

时间:2011-01-20 12:33:27

标签: asp.net regex validation .net-1.1

我有一个需要验证的文本框,以便用户可以输入最多四个字符,它们可以是字母数字。我使用的是VS2003,.NET 1.1。

请让我知道我应该使用什么表达来验证这种情况 任何帮助都会很棒。谢谢!

试过这样:

<asp:TextBox id="wtxtTPP" tabIndex="2" runat="server" CssClass="text" Width="144px" MaxLength="4" />
<asp:RegularExpressionValidator id="RegularExpressionValidator1" style="z-index: 101; left: 208px; position: absolute; TOP: 16px" runat="server" ErrorMessage="RegularExpressionValidator" ValidationExpression="^([\S\s]{0,4})$" ControlToValidate="wtxtTPP" />
<input style="z-index: 102; left: 88px; position: absolute; top: 72px" type="submit" value="Submit" id="Submit1" name="Submit1" runat="server">

4 个答案:

答案 0 :(得分:3)

正如您所说,使用正则表达式验证器并将表达式设置为如下所示:

^([\S\s]{0,4})$

将4替换为所需的最大长度。

更新

<asp:TextBox id="wtxtTPP" Runat="server" />

<asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" 
        ErrorMessage="RegularExpressionValidator" 
        ValidationExpression="^([\S\s]{0,4})$" 
        ControlToValidate="wtxtTPP" />

<asp:Button ID="Button1" runat="server" Text="Button" />

这对我来说很好。我用普通的asp.net按钮替换了你的提交按钮,并简化了示例中所有不需要的东西 通常,如果您只有一行文本框,则可以像{J}一样使用MaxLength="4"限制文本长度。不需要验证器。

答案 1 :(得分:1)

就像@Remy说的那样。

此外,正则表达式的{0,4}部分意味着长度应为零到最多四个,因此将允许零长度,即输入。如果数字是强制性的,请记住使用RequiredFieldValidator,或者用最小位数替换零。

答案 2 :(得分:1)

       <table>
         <tr>   
           <td>E-mail Address:</td>
           <td>
              <asp:TextBox ID="txt_address" runat="server"></asp:TextBox>
           </td>
           <td>
             <asp:RegularExpressionValidator id="RegularExpressionValidator1" runat ="server" 
              ErrorMessage="Please give Email Address! "
              ControlToValidate="txt_address"
              ValidationExpression="\S+@\S+\.\S+\w+"//example (example@yahoo.com)
              ForeColor="Red" >
             </asp:RegularExpressionValidator>
           </td>
         </tr>
       </table>

    <table>
      <tr>            
        <td>
           <asp:RadioButtonList ID="rbl_gender" runat="server">
            <asp:ListItem>Male</asp:ListItem>
            <asp:ListItem>Female</asp:ListItem>
            </asp:RadioButtonList>
         </td>
         <td>
            <asp:RequiredFieldValidator ID="RequiredFieldVlidator2" runat="server"
            ErrorMessage="Please Choose your Gender" ControlToValidate="rbl_gender"
            ForeColor="Red" >
            </asp:RequiredFieldValidator>
         </td>
       </tr>
   </table>

<table>
   <tr>    
     <td>
         <asp:RequiredFieldValidator ID="RequiredFeildValidator1" 
            runat ="server" ControlToValidate ="txt_name" 
            ErrorMessage="Please Insert Your name !" 
            ForeColor="Red">
         </asp:RequiredFieldValidator>
     </td>
   </tr>    

答案 3 :(得分:0)

ValidationExpression中的一个非常小的变化似乎只是在有时工作和可靠工作之间产生差异。 以下是我在开发中的工作,但不是在生产中:

<asp:RegularExpressionValidator Display = "Dynamic" ControlToValidate = "tbCarePlan" ID="revCarePlan" ValidationExpression = "^(.{0,4000})$" runat="server" ErrorMessage="Max 4000 characters allowed." />

使用"[\s\S]{0,4000}"替换上面的ValidationExpression现在可以正常运行。省略^和$ - RegularExpressionValidator不需要这个。