寻找一个jquery正则表达式模式匹配0-24,允许小数

时间:2015-03-12 16:27:31

标签: jquery regex

我正在设置一个表单字段,允许用户输入任务的小时数。我希望字段允许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"。

是的,在这种情况下,正则表达式是首选的方法。不是功能。

2 个答案:

答案 0 :(得分:3)

您可以使用此正则表达式:

^((?:[0-9]|1[0-9]|2[0-3])(?:\.\d{1,2})?|24(?:\.00?)?)$

RegEx Demo

答案 1 :(得分:1)

有一个非常简洁的网站名为regex101(https://regex101.com/#javascript),我在制作正则表达式时有时使用它。

我把这个可能适合你的那个放在一起

^\d(\.\d?\d?)?$|^(?=1)1\d(\.\d?\d?)?$|^(?=2)2[0-3](\.\d?\d?)?$|^24$

有4个备用案例,每个案例都需要与^和$

完全匹配
  1. 任意数字(0-9),可选小数为1或2位
  2. 第一个数字是1,第二个位置(0-9)中的任何数字都带有可选的十进制数字
  3. 第一个数字是2,第二个数字必须是0-3之一,带有可选的十进制数字
  4. 正好24