十进制正则表达式验证错误MVC 5

时间:2017-09-21 14:31:36

标签: regex asp.net-mvc-5

我有一个正则表达式来验证带有两位小数的十进制字段,这里是de code

[RegularExpression(@"^[0-9]{1,11}(?:\.[0-9]{1,2})?$", ErrorMessage = "El campo {0} debe ser un numero con máximo 2 decimales")]
public decimal? amount { get; set; }

当我创建一行时它工作正常,但是当我编辑它对字段进行减法时,它会抛出ErrorMessage异常,对其进行调试我可以看到值是正确的,我的意思是它只有两位小数并且是正数

减法中涉及的两个字段都是十进制类型

最奇怪的是,它运作良好,突然停止运转

感谢有人可以帮我解决这个问题

1 个答案:

答案 0 :(得分:0)

/^[0-9]{1,11}(?:\.[0-9]{1,2})?$/表示: “1到11位数,optionnaly后跟一个点和1或2位小数”。

它不适用于减号或加号。 “12345678901.12”有效,因此为“3”,但不是“+25”,也不是“-43.5”。 它不会处理小于1的十进制值,例如“.42”