【发布时间】:2017-04-10 08:20:27
【问题描述】:
当我必须在我的数据库中插入一个小数时,我遇到了 html.textboxfor 的问题,该数据库也设置为小数。
我试过这个:
[RegularExpression(@"^[0-9]+(\.[0-9]{1,3})$", ErrorMessage = "Valid Decimal number with maximum 3 decimal places.")]
但只有在我至少有 3 位小数 (1,123) 时才会接受它。
我需要它能够接受,{1 - 1,2 - 1,23 - 1,234}
我如何做到这一点?
我还没有找到一个我可以弄清楚如何使用的正则表达式生成器..
或者我在如何解决我的问题方面完全走错了方向?
我在模型中的价值:
[RegularExpression(@"^[0-9]+(\.[0-9]{1,3})$", ErrorMessage = "Valid Decimal number with maximum 3 decimal places.")]
[Required]
public decimal Average { get; set; }
在我的表单中输入 html:
<div class="form-group">
@Html.LabelFor(x => x.Average, "Gennemsnit")
@Html.TextBoxFor(x => x.Average, new { @class = "form-control" })
@Html.ValidationMessageFor(x => x.Average, "", new { @class = "text-danger" })@
</div>
【问题讨论】:
-
您似乎在
)之后错过了?以使小数部分可选:@"^[0-9]+(\.[0-9]{1,3})?$"。请注意,您在示例中使用,作为小数分隔符,而在正则表达式中,您有一个点。 -
不适用于我需要的东西,当我只有 1 个小数或 2 个小数时它会出错,它只接受 3 个小数或不接受 ..
-
适合我...regex101.com/r/m9JfOc/1
-
也许 html.textboxfor 也验证了“平均”在我的模型中是小数这一事实?
-
如果您的小数点分隔符在 ` 逗号中,您需要重新配置
$.validator(默认情况下,jquery.validate.js验证数字时使用点作为小数点分隔符。
标签: c# regex asp.net-mvc decimal html-helper