如果输入了多个字符,则RegularExpressionValidator将失败

时间:2012-10-30 19:23:23

标签: asp.net regex

我的asp:RegularExpressionValidator

  <asp:RegularExpressionValidator ID="RegularExpressionValidator2" 
                runat="server" ControlToValidate="uxTrachoCtrl1"
                ErrorMessage="Ne dois pas contenir des caractères alphabétiques"  
                ValidationExpression="[0123456789,.<>=]" ValidationGroup="verification" Display="Dynamic" 
                SetFocusOnError="True">
            </asp:RegularExpressionValidator>    

该字符串只能包含字符0123456789,。&lt;&gt; =

这是我的正则表达式[0123456789,。&lt;,&gt;,=]

如果我输入一个像f或1这样的字符,它会起作用,但如果我输入多个字符,则会产生错误:

ex: input="1"=ok
    input="f"=error
    input="11"=error (It's supposed to be right)

2 个答案:

答案 0 :(得分:6)

字符类只匹配一个字符。如果要允许任意长度的字符,则需要重复它:

"[0-9,.<>=]*"

如果要排除空输入,请改用:

"[0-9,.<>=]+"

请注意,我的角色类与您的角色类相同(0-90123456789的简写符号,并且您的角色类中有多次,。)

答案 1 :(得分:0)

您刚刚定义了一个字符的有效字符范围

将其更改为

ValidationExpression="[0-9,.<>=]{minLength,maxlength}"

而不是minLengthmaxLength,您应该输入所需的数字。  如果您想允许*|+或更多重复字符,请使用0|1