正则表达式,仅包含数字,点和最小值

时间:2017-12-01 10:49:56

标签: c# regex validation

我试图制作一个只接受数字,点和具有最小值和最大值的正则表达式。

例如:

  • 1.000 - 有效
  • 100.000 - 有效
  • 100.000a - 无效
  • .10 - 无效
  • 100 - 无效

我有这个,按照我想要的数字和点工作,这里只缺少一件事,这是最小和最大验证。

@"^([+-]?\d{1,3}(?:,\d{1,3})*(?:\.\d+)*)$"

PS: 我在.net core上使用数据注释

更新

我有一个javascript,用于将输入字段中的用户输入分为千种格式,如:

来自:1000000

收件人:1.000.000

为了更好的用户体验。

但问题是使用数据注释进行验证。 使用上面的RegularExpression正在使用点,我只需要一个最小值和最大值。

我尝试使用Range(min,max),但由于这些点,它将其识别为无效输入。

此致

2 个答案:

答案 0 :(得分:0)

鉴于你的评论,我认为这就是你的观点:

^[+-]?[1-9]\d{0,2}(?:\.\d{3})+$

它匹配1-3个数字的范围(第一个0),然后是.的至少一个(无上限)序列+三位数。

这将匹配任何大于一千的数字,.为千位分隔符。而且由于你的尝试允许,这也允许在开头有一个可选的标志。

See it in action here at regexstorm。注意!我无法获得$和多行以便在那里工作,因此使用\s来代替说明。

答案 1 :(得分:-1)

考虑到每个数字后字符串中都有空格字符 这应该做的工作:

regex = @"[0-9]{1,3}\.[0-9]{1,5}"

更新: 由于获得的文本将是数字,因此您可以简单地验证它们以进行范围检查。

如需参考,请查看:regex reference

让我知道,如果它不起作用