我不确定这是否可能与正则表达式。我会尝试使用正则表达式,但如果不可能,我会切换到双重验证。最大长度为小数的正则表达式
我的数据库(postgresql)接受decimal
为15,6(最多15个数字,最多6个小数),所以如果我有10个整数数字,我可以有5个小数位数。小数点分隔符被忽略。
目前,我有这个正则表达式(逗号是小数点分隔符):
^\d{1,15}(\,\d{1,6})?$
它不验证的总长度,只有数字到左边。 但由于用户还可以键入点(千位分隔符),我有这个怪物:
^((\d+)|(\d{1,3}(\.\d{3})+)|(\d{1,3}(\.\d{3})(\,\d{3})+))((\,\d{4})|(\,\d{3})|(\,\d{2})|(\,\d{1})|(\,))?$
这一个不接受超过3位小数。我可以编辑这个接受6次decimais,但我仍然无法验证总长度。
是否可以验证数字的总长度?忽略点和逗号。
正则表达式应该接受:
1234567890,123456
1.234.567.890,123456
,当然还有其他任何中间值:
1.234,12
,1,0
,1
...
你使用哪种语言?标记可能有助于获得更多关注。 –
好的,这是c#。谢谢。 –
你想做什么?小数是数字,而不是文本值。他们没有分隔符。如果你想*验证一个值,你可以在DTO级别使用UI验证器和数据注解等。 –