как использовать RegularExpressionValidator для текстового поля - PullRequest
2 голосов
/ 20 января 2011

У меня есть текстовое поле, которое мне нужно проверить, чтобы пользователь мог ввести ввод до четырех символов, и они могут быть буквенно-цифровыми Я использую 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 ]

3 голосов
/ 20 января 2011

Как вы сказали, используйте средство проверки регулярных выражений и задайте для выражения что-то вроде этого:

^([\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 и упростил все ненужные вещи для примера.
В общем, если у вас есть только однострочное текстовое поле, вы можете просто ограничить длину текста MaxLength="4", как и раньше. Нет необходимости в валидаторе.

1 голос
/ 28 декабря 2013
       <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>    

1 голос
/ 20 января 2011

Как сказал @ Реми.

Кроме того, часть {0,4} в регулярном выражении означает, что длина должна быть от нуля до максимум четырех, поэтому допускается нулевая длина, т.е. Не забудьте использовать RequiredFieldValidator, если число является обязательным, или заменить ноль на минимальное количество цифр.

0 голосов
/ 03 июля 2015

Очень небольшое изменение в выражении ValidationExpression, кажется, делает разницу между только иногда работающей и надежно работающей Следующее работало для меня в разработке, но не в производстве:

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

Замена вышеприведенного выражения Validation на "[\s\S]{0,4000}" теперь работает надежно. Не указывайте ^ и $ - RegularExpressionValidator не требует этого.

...