代码之家  ›  专栏  ›  技术社区  ›  Eton B.

最简单的正则表达式有问题吗

  •  1
  • Eton B.  · 技术社区  · 16 年前

    我正在尝试验证ASP TextBox 使用以下正则表达式只能有1-2个数字(不是零):

    ^[1-9]{1,2}
    

    如果字段是空的,这个正则表达式不会进行验证(假设是由于1-2部分)

    也试过了 ^[1-9+]{1,2} 无济于事。

    <asp:TextBox ID="txtInHour" 
                 MaxLength="2" 
                 runat="server" 
                 Text='<%# Bind("InHour") %>' 
                Width="80"/>
    
    
    <asp:RegularExpressionValidator ID="rvInHour" 
                    ControlToValidate="txtInHour" 
                    Display="None" 
                    ValidationExpression="^[1-9]{0,2}$" 
                    runat="server" 
                    ErrorMessage="InHour is incorrectly formatted." />  
    
    3 回复  |  直到 10 年前
        1
  •  1
  •   Jan.    16 年前

    我注意到的第一件事是你的模式中不允许有零。所以10或20是无效的?第二件事是你以“开始于”AKA“^”开始,但是没有“结束于”AKA“$”

    所以。。试试这个:

    ^[1-9][0-9]?$
    

    以人类可读的方式:

        2
  •  1
  •   Eton B.    16 年前

    我发现由于某些原因,RegularExpressionValidator在没有可匹配的输入(空白字段)时无法工作,因此我不得不使用一个单独的RequiredFieldValidator。谢谢大家的意见!

        3
  •  0
  •   HoLyVieR    16 年前

     ^([1-9]|[1-9][0-9])$
    
    推荐文章