我有一个我需要写的简单表达,但我对正则表达式并不是那么好。
我的限制是:最多1位数。最多4位数,允许更少
这些应该通过。
1
1.2
1.23
1.234
1.2345
这些应该失败。
10
10.1
1.23456
我最接近的是\d\.\d{0,4}
,但它不会选择1,并从第二个列表中选择0.1
和1.2345
。
我还应该指定这是在用户输入时进行的检查,如果这会产生影响。
修改
由于有很多回复涵盖了几个不同的点,我觉得我应该指出更多,特别是因为有人可能会指出我更好的道路。我在网络表单上使用它。它只需要在用户输入时允许这些条件,所以如果他们有" 4"并尝试输入" 1"它不会允许它,但如果他们进入"。"第一。或者在他们做类似" 2.5345"之类的事情之后不允许输入,因为它是小数点后面的4位数。
答案 0 :(得分:3)
答案 1 :(得分:2)
/^\d(\.\d{0,4})?$/
RegEx细分
/
- 表示正则表达式的开始
^\d
- 表达式以数字
\.
- 期间需要转义,因为否则它们会匹配任何字符。
\d{0,4}
- 将匹配0到4位数。
()
- 捕获所有内容
?
- 匹配表达式的0或1
答案 2 :(得分:1)
试试这个regex
^\d$|^\d\.\d{1,4}$
答案 3 :(得分:1)
在您的示例中,您还允许不使用点,因此您需要:^\d(\.\d{0,4})?$