RegularExpressionValidator - 验证前2个字符

时间:2017-05-18 14:51:15

标签: asp.net regex

我正在尝试验证输入到文本框中的字符串。我想确保前两个字符是02,04或09。

<asp:RegularExpressionValidator Display = "Dynamic" ControlToValidate = "check_number" ID="rxvValidCheckNumber1" ValidationExpression = "^(02|04|09)" runat="server" ErrorMessage="Valid Check Number required."></asp:RegularExpressionValidator>

如果我输入以02,04或09开头的字符串,则ErrorMessage仍然会触发。我做错了什么?

1 个答案:

答案 0 :(得分:2)

ValidationExpression正则表达式默认是锚定的,因此您需要匹配整个输入。您可以将0+字符与.*匹配:

ValidationExpression = "^(02|04|09).*"

要使其更加优雅&#34;,您可以在0[249]之后使用^

ValidationExpression = "^0[249].*"

表达式匹配

  • ^ - 字符串锚的开始
  • 0 - 0数字
  • [249] - 与249匹配的字符类
  • .* - 除了换行符之外的任何0 +字符。

如果您的textobx是多行,则需要使用(?s) singleline / dotall修饰符

ValidationExpression = "(?s)^0[249].*"

或(为了启用客户端验证,JavaScript中不支持(?s)):

ValidationExpression = "^0[249][\s\S]*"

其中[\s\S]匹配任何包含换行符的字符。