MVC5 项目中模型属性验证的有效值:
从 0,01 到 999,99 的十进制数,但我可以接受 0,1 或 9 或 9,01
0,01
,1
,20
1
1,2
1,20
00,2
00,20
现在我有:
[RegularExpression(@"^(((d{1,3})(,d{3})*)|(d+))(.d+)?$", ErrorMessage = "Largura inválida.")]
但它接受"."和超过 2 位小数。
您可以使用
^(?!0?(,0?0)?$)([0-9]{0,3}(,[0-9]{1,2})?)?$
查看正则表达式演示
解释:
-
^
- 字符串的开头 -
(?!0?(,0?0)?$)
- 一个否定的展望,禁止字符串等于0
、0,0
、0,00
甚至,0
-
([0-9]{0,3}(,[0-9]{1,2})?)?
- 可选组(由于末尾?
匹配一次或零次)匹配-
[0-9]{0,3}
- 零 o 三个任意数字 -
(,[0-9]{1,2})?
- 可选地匹配一组逗号,后跟 1 或 2 位数字
-
-
$
- 字符串结尾
或使用此模式
^(?=.*[1-9])([0-9]{0,3}(?:,[0-9]{1,2})?)$
演示