ASP .NET中TextBox的正则表达式验证

时间:2016-05-14 16:54:56

标签: asp.net regex validation

我想验证文本框中的用户输入。在文本框中,用户应该只能输入街道名称,空格和数字(例如,道路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 />

1 个答案:

答案 0 :(得分:0)

您的表达式仅匹配[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"