2012-02-13 122 views
4

我有一个RegularExpressionValidator,其中唯一有效的输入是8个字符长,由字母MP后跟6个数字组成。目前我有以下正则表达式,它的工作在ASP.NET中忽略区分大小写RegularExpressionValidator

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

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

感谢,

大卫

+0

可能的重复http://stackoverflow.com/questions/2641236/make-regular-expression-case-insensitive-in-asp-net-regularexpressionvalidator – goodeye 2013-02-24 00:25:30

回答

3

你可以做到这一点,当你定义的正则表达式对象

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

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

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

+1

+1,但内联选项的syntay看起来像这样(“ (我)(mp)[0-9] {6} $“' – stema 2012-02-13 09:29:30

+0

我认为OP需要该组只是为了交替,所以可能它不需要在这里,所以'@“^ mp [0-9] {6} $”'会很好。 – stema 2012-02-13 09:31:13

+0

@stema tnanks,我已经纠正了 – oleksii 2012-02-13 09:31:31