【问题标题】:Regular Expression Validation on TextBox in ASP .NETASP .NET 中文本框上的正则表达式验证
【发布时间】:2016-09-10 19:07:09
【问题描述】:

我想验证文本框中的用户输入。在文本框中,用户只能输入街道名称、空格和数字(例如 65 号公路)。

要求是:

  • 街道名称以字母开头
  • 那么应该是空格
  • 那么它应该是一个数字

什么是验证正则表达式?

我在 ASP .NET 中使用RegularExpressionValidator

<asp:RegularExpressionValidator ID="RegularExpressionValidatorStreet" runat="server"
         ErrorMessage="This is wrong!" ValidationExpression="^[a-zA-Z\s][0-9]$"
        ControlToValidate="streettxt"></asp:RegularExpressionValidator><br />

【问题讨论】:

    标签: asp.net regex validation


    【解决方案1】:

    您的表达式只匹配[a-zA-Z\s] 中的一个字符,后跟[0-9] 中的一个字符,因此它将匹配"r6"" 6""Z8",但不匹配"road 65"


    由于您要匹配至少一个或多个字母,后跟一个空白字符,最后是一个或多个数字,请尝试:

    ValidationExpression="^[a-zA-Z]+\s[0-9]+$"
    

    说明:

    • 将匹配:"road 65""qWerTy 6""q 23983049823948"
    • 匹配:"road 65"" road 65""road65"
    • ^ 断言字符串开头的位置
    • [a-zA-Z]+ 匹配 a-zA-Z 之间的单个字符一次到无限次,尽可能多次
    • \s 匹配任何单个空格字符
    • [0-9]+ 匹配0-9 之间的单个字符一次到无限次,尽可能多次
    • $ 断言字符串末尾的位置

    注意事项:

    如果您想在有一个到无限个空格字符之间进行匹配,请将量词添加到\s+

    ValidationExpression="^[a-zA-Z]+\s+[0-9]+$"
    

    这将匹配"road 65""road 65" 但不匹配"road65"

    【讨论】:

      猜你喜欢
      • 2011-10-29
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      • 2021-06-08
      • 1970-01-01
      相关资源
      最近更新 更多