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这样的数字也被这个正则表达式接受,而您的演示清楚地表明它不应该被接受。很奇怪,但是已经谢谢你的帮助了!让我们。