Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
Javascript 最多3位,最多3位小数_Javascript_Regex - Fatal编程技术网

Javascript 最多3位,最多3位小数

Javascript 最多3位,最多3位小数,javascript,regex,Javascript,Regex,看来我又被一个简单的正则表达式卡住了 我想要的是: 介于1和999之间的数字 可选:逗号、符号 如果输入逗号符号,则最小小数点为1,最大小数点为3 小数应该是前置的 允许: 100 999,0 999999 999,99 不允许: -1 0 999, 9999999 这就是我到目前为止所做的: ^[0-9]{1,3}(?:\,[0-9]{1,3})?$ 有什么建议吗 您可以使用此正则表达式: /^[1-9]\d{0,2}(?:\,\d{1,3})?$/ 与OP的正则表达式的主要区别在于

看来我又被一个简单的正则表达式卡住了

我想要的是:

  • 介于1和999之间的数字
  • 可选:逗号、符号
  • 如果输入逗号符号,则最小小数点为1,最大小数点为3 小数应该是前置的
允许:
100
999,0
999999
999,99

不允许:
-1
0
999,
9999999

这就是我到目前为止所做的:

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

有什么建议吗

您可以使用此正则表达式:

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


与OP的正则表达式的主要区别在于使用了
[1-9]
,它在正则表达式的其余部分之前匹配数字1到9。

此正则表达式应该工作:

^[1-9]\d{0,2}(?:,\d{1,3})?$
解释如下:

^[1-9]
:它应该以1到9之间的数字开头

\d{0,2}
:后跟最小0位,最大2位(0-9)

(?:,
:后跟逗号

\d{1,3})
:如果有逗号,后面应该跟一到三位数字

$
:行尾


感谢@dev null提供此链接:

这几乎是一样的,它可以根据您的需要进行简单的修改:如果人们真的解释了他们的正则表达式的功能,我会很高兴的。@evolutionxbox很好的解释,我竖起大拇指。如果人们真的解释了他们的正则表达式的功能,我会很高兴的。嗯,很奇怪。在您的演示中,它似乎工作正常。尽管如此,当使用它时,它接受一个没有小数的逗号,当小数存在时,验证失败:我使用Angular,使用ng模式指令:ng pattern=“/^[1-9]\d{0,2}(?:\,\d{1,3})?$/”出于某种原因,甚至像99999999999999这样的数字也被这个正则表达式接受,而您的演示清楚地表明它不应该被接受。很奇怪,但是已经谢谢你的帮助了!让我们。