我正在尝试验证输入到文本框中的字符串。我想确保前两个字符是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仍然会触发。我做错了什么?
答案 0 :(得分:2)
ValidationExpression
正则表达式默认是锚定的,因此您需要匹配整个输入。您可以将0+字符与.*
匹配:
ValidationExpression = "^(02|04|09).*"
要使其更加优雅&#34;,您可以在0[249]
之后使用^
:
ValidationExpression = "^0[249].*"
表达式匹配
^
- 字符串锚的开始0
- 0
数字[249]
- 与2
或4
或9
匹配的字符类.*
- 除了换行符之外的任何0 +字符。如果您的textobx是多行,则需要使用(?s)
singleline / dotall修饰符
ValidationExpression = "(?s)^0[249].*"
或(为了启用客户端验证,JavaScript中不支持(?s)
):
ValidationExpression = "^0[249][\s\S]*"
其中[\s\S]
匹配任何包含换行符的字符。