我正在设置一个表单字段,允许用户输入任务的小时数。我希望字段允许0到24小时,小数点后2位。
我写的初始正则表达式处理它,但强制十进制和十进制数字。
^([0-9](\.\d{1,2}))|([1]\d{1,2}(\.\d{1,2}))|([2][0-3](\.\d{1,2}))|24$
我尝试将十进制捕获组设置为可选:
^([0-9](\.\d{1,2})?)|([1]\d{1,2}(\.\d{1,2})?)|([2][0-3](\.\d{1,2})?)|24$
然后它允许愚蠢的数字,如" 23.999999999"。
是的,在这种情况下,正则表达式是首选的方法。不是功能。
答案 0 :(得分:3)
答案 1 :(得分:1)
有一个非常简洁的网站名为regex101(https://regex101.com/#javascript),我在制作正则表达式时有时使用它。
我把这个可能适合你的那个放在一起
^\d(\.\d?\d?)?$|^(?=1)1\d(\.\d?\d?)?$|^(?=2)2[0-3](\.\d?\d?)?$|^24$
有4个备用案例,每个案例都需要与^和$
完全匹配