Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 只有数字、点和最小值的正则表达式_C#_Regex_Validation - Fatal编程技术网

C# 只有数字、点和最小值的正则表达式

C# 只有数字、点和最小值的正则表达式,c#,regex,validation,C#,Regex,Validation,我试图制作一个只接受数字、点的正则表达式,它有最小值和最大值 例如: 1.000-有效 100.000-有效 100.000a-无效 .10-无效 100-无效 我有这个,我想用数字和点,这里只缺少一件事,那就是最小和最大验证 @“^([+-]?\d{1,3}(?:,\d{1,3})*(?:\。\d+*)$” 附言: 我在.NETCore上使用数据注释 更新 我有一个javascript,它将用户在输入字段中的输入分隔为千种格式,如: 发件人:1000000 收件人:1.000.000 为了

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

例如:

  • 1.000
    -有效
  • 100.000
    -有效
  • 100.000a
    -无效
  • .10
    -无效
  • 100
    -无效
我有这个,我想用数字和点,这里只缺少一件事,那就是最小和最大验证

@“^([+-]?\d{1,3}(?:,\d{1,3})*(?:\。\d+*)$”

附言: 我在.NETCore上使用数据注释

更新

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

发件人:
1000000

收件人:
1.000.000

为了更好的用户体验

但是,问题在于数据注释的验证。 我上面的正则表达式是处理点的,我只需要一个最小值和最大值

我试过使用Range(最小值,最大值),但由于点的原因,它将其识别为无效输入


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

regex = @"[0-9]{1,3}\.[0-9]{1,5}"
更新: 因为获得的文本将是数字,所以您可以简单地验证它们以进行范围检查

供参考,请看:


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

根据您的评论,我想这就是您的目标:

^[+-]?[1-9]\d{0,2}(?:\.\d{3})+$
它匹配一个1-3位数的范围(第一个
0
),然后是至少一个
+三位数的(无上限)序列

这将匹配任何大于1000的数字,并将
作为千个分隔符。由于您的尝试允许,这也允许在开始时使用可选标志


。注意!我无法让
$
和多行在那里工作,因此使用
\s
来代替说明。

关于
bool isValid=Regex.IsMatch(模式,值)&&value>=min&&value Oh,我忘了提到我正在使用netIf上的数据批注。如果这是一个验证属性,您是否考虑过根据您的需求创建一个新属性?它们并不难制作,而且比正则表达式版本的可读性要高很多(如果你的最小值和最大值发生变化,那么很容易修改)。@Chris我怎么做呢?@Muhaki:在评论中很难解释,但幸运的是你可以通过谷歌找到帮助。类似的内容可能会让您开始,或者这里可能有与自定义验证属性相关的问题。a)OP中的字符串中没有空格。b) 这看起来并不能解决最小/最大验证问题。我不确定这应该如何解决问题:)你可以发布一些示例文本,为什么你希望设置最小/最大字符数验证集,当你可以简单地对数字进行排序并获得所需的范围时,如果需要,请告诉我