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

Bv2*_*202 7 javascript regex

似乎我再次陷入了一个简单的正则表达式.

我想要的是什么:

  • 1到999之间的数字
  • 可选:逗号,标志
  • 如果输入逗号,则应预先输入最小1位小数和最大3位小数.

允许:
100
999,0
999,999
999,99

不允许:
-1
0
999,
999,9999

这是我到目前为止:

^[0-9]{1,3}(?:\,[0-9]{1,3})?$
Run Code Online (Sandbox Code Playgroud)

有小费吗?

Mic*_*ine 6

这个正则表达式应该工作:

^[1-9]\d{0,2}(?:,\d{1,3})?$
Run Code Online (Sandbox Code Playgroud)

这是解释:

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

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

(?:,:后面跟一个逗号

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

$: 行结束

感谢@ dev-null获取此链接:解释

  • [相同的答案已经发布](http://stackoverflow.com/a/30662081/548225) (2认同)

anu*_*ava 5

你可以使用这个正则表达式:

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

RegEx演示

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