具有 2 个小数位 MVC 的正小数逗号分隔符的正则表达式



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)?$) - 一个否定的展望,禁止字符串等于00,00,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})?)$

演示

最新更新