我试图制作一个只接受数字,点和具有最小值和最大值的正则表达式。
例如:
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),但由于这些点,它将其识别为无效输入。
此致
答案 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
让我知道,如果它不起作用