【问题标题】:RegularExpressionValidator - Validate first 2 charactersRegularExpressionValidator - 验证前 2 个字符
【发布时间】:2017-05-18 14:51:15
【问题描述】:

我正在尝试验证输入到文本框中的字符串。我想确保前 2 个字符是 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 仍然会触发。我做错了什么?

【问题讨论】:

  • 试试ValidationExpression = "^(02|04|09).*"。顺便说一句,文本框是多行还是单行?
  • 完美!!!非常感谢
  • 你甚至可以将0移出群组"^0[249].*

标签: asp.net regex


【解决方案1】:

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

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

为了让它更“优雅”,你可以在^之后使用0[249]

ValidationExpression = "^0[249].*"

表达式匹配

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

如果你的textobx是multiline,你需要使用(?s)singleline/dotall修饰符

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

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

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

[\s\S] 匹配任何字符,包括换行字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多