2016-02-17 170 views
1

在我的MVC应用程序,我定义的验证使用以下正则表达式正则表达式允许12个或13位数字

[RegularExpression(@"\d{8}0[1-2]\d{3}", ErrorMessage = "Must be numeric, 12 or 13 characters long & Format xxxxxxxx[01 or 02]xxx")] 

但我想允许12或13个字符。该d{3}似乎迫使该总体来说,我有13个字符输入

要允许它接受12或13,我已经改变了d{3}d{2}其接受12了。

但是 - 我能确定它仍然需要13个字符吗?

+0

为什么不只是'\ d {12,13}' – Tushar

+0

可以使用'\ d {2,3}'(允许2或前面的字符的3) –

+0

尝试这一个:\ d {8} 0 [1-2] \ d {2,3} –

回答

2

必须是数字,12或13个字符长&格式XXXXXXXX [01或02]的xxx

为了允许后第一九位数字12

^\d{8}0[12]\d{2,3}$ 
     ^^^^   : Allow 1 or 2 after `0` 
      ^^^^^^^ : Any two or three digits 

注意[12]也可以使用OR /更改编写为(1|2)

Demo