我正在尝试编写一个正则表达式验证器来接受只有小数部分0或5且在0-5范围内的数字.例如:
-1 false
-.5 false
-0 false
000000 true
0.0 true
0000. true
0 true
.50000000 true
00001. true
01.50 true
2.00000 true
2.5000 true
03 true
03.5 true
0004 true
0004.5000 true
00005.0 true
0 true
0.5 true
1 true
1.5 true
2 true
2.5 true
3 true
3.5 true
4 true
4.5 true
5 true
1.05 false
5.5 false
10 false
20 false
30 false
40 false
50 false
Run Code Online (Sandbox Code Playgroud)
无论数字前面或后面有多少0都可以有效.
我想这一个^[0-5]+(?:\.[05]0?)?$,但它的情况下失败:0000.,.5,001.和5.5
非常感谢!
您可以使用
^0*(?:[0-4]?(?:\.5?0*)?|5(?:\.0*)?)$
Run Code Online (Sandbox Code Playgroud)
说明:
^0* # allow leading 0s
(?: # non capturing group
[0-4]? # below 5: number starts with 0-4
(?:\.5?0*)? # optional: decimal dot, might be followed by one 5 and 0s.
| # or
5(?:\.0*)? # 5, possibly followed by 0s
)
$
Run Code Online (Sandbox Code Playgroud)
请注意,这也会验证空字符串或单个字符串..告诉我,如果这是一个问题,作为一个quickfix你可以在开始时添加前面的检查长度和内容:(?=.)(?!\.$).
| 归档时间: |
|
| 查看次数: |
702 次 |
| 最近记录: |