【问题标题】:Ignore case sensitivity in ASP.NET RegularExpressionValidator在 ASP.NET RegularExpressionValidator 中忽略大小写敏感
【发布时间】:2012-03-04 16:54:20
【问题描述】:

我有一个 RegularExpressionValidator,其中唯一有效的输入是 8 个字符长,由字母 MP 后跟六个数字组成。目前我有以下正则表达式,它确实有效

^(MP|mp|Mp|mP)[0-9]{6}$

但感觉有点hacky。我希望能够指定 MP 可以是大小写的任意组合,而不必列出可用的组合。

谢谢,

大卫

【问题讨论】:

标签: c# regex


【解决方案1】:

你可以在定义 Regex 对象时这样做

Regex exp = new Regex(
    @"^mp[0-9]{6}$",
    RegexOptions.IgnoreCase);

或者,您可以使用^(?i)mp[0-9]{6}$ 语法,这将使正则表达式的特定位不区分大小写。但我个人会使用第一个选项(它更容易阅读)。

有关详细信息,请参阅msnd 上的文档。

【讨论】:

  • +1 但内联选项的语法看起来像这样 (?i) ==> @"^(?i)(mp)[0-9]{6}$"
  • 而且我认为 OP 需要该组只是为了交替,所以这里可能不需要它,所以@"^mp[0-9]{6}$" 就可以了。
  • 我将使用 ?i 语法,因为我没有定义任何正则表达式对象,而是在 ASPX 页面中设置正则表达式。
  • 查看答案stackoverflow.com/a/3063373/292060 警告客户端验证不适用于 ?i 语法,因为 javascript 不支持模式修饰符。
猜你喜欢
  • 1970-01-01
  • 2016-11-18
  • 2011-06-11
  • 1970-01-01
  • 1970-01-01
  • 2016-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多