/^\d{1,2}[:][0-5][0-9]$/
这是我目前的代码。它将分钟限制在00-59之间。但是,它不会将小时限制在0到12之间。为了保持一致性和统一性,如果可能的话,我想仅使用正则表达式来实现这一点。
此外,我希望第一个数字是可选的。例如,09:30和9:30都应该被接受。我尝试使用范围进行操作,但是超出范围的输入始终是可以接受的。
/^\d{1,2}[:][0-5][0-9]$/
这是我目前的代码。它将分钟限制在00-59之间。但是,它不会将小时限制在0到12之间。为了保持一致性和统一性,如果可能的话,我想仅使用正则表达式来实现这一点。
此外,我希望第一个数字是可选的。例如,09:30和9:30都应该被接受。我尝试使用范围进行操作,但是超出范围的输入始终是可以接受的。
假设你使用的是12小时制时间,那么0不是一个有效的小时数,应该被排除在外(正如Jon所指出的)。这里是一个基本解决方案:
/^(0?[1-9]|1[012]):[0-5][0-9]$/
一个类似的能够匹配24小时时间的正则表达式:
/^([01]?[0-9]|2[0-3]):[0-5][0-9]$/
需要分别处理0-9和10-12这两种情况。(这两个规则可以用|
组合起来。)
/^(?:0?\d|1[012]):[0-5]\d$/
这里
(?:…)
是一个非捕获组x|y
表示匹配其中任意一种模式0?\d
匹配0-9或00-091[012]
匹配10-12如果您正在寻找24小时格式匹配,
hh:mm:ss或h:mm:ss:
status = /^(2[0-3]|[0-1]?[\d]):[0-5][\d]:[0-5][\d]$/.test(timestr)
hh:mm或h:mm:
status = /^(2[0-3]|[0-1]?[\d]):[0-5][\d]$/.test(timestr)
/^(10|11|12|[1-9]):[0-5][0-9]$/
我认为您也不希望将0:50作为有效时间。
谢谢!我现在使用这个JavaScript代码:
function Check_arrival(time) {
//假设您是在12小时制下工作,0不是有效值
var patt = new RegExp("^(0?[1-9]|1[012]):[0-5][0-9]$");
var res = patt.test(time);
return res;
}
返回值:true或false
这是完美的:^0?([0-9][0-2]?):[0-5][0-9]$
注意:仅限12小时制钟表
适用于以下时间:
0:01- 12:59
或者
00:01 - 12:59
^(([0-9]{1})|([0-1]{1}[0-9]{1})|([2]{1}[0-3]{1}))(([:]{1})?)(([0-5]{1}[0-9]?)?)$
^(([0-9]{1})|([0-1]{1}[0-9]{1})|([2]{1}[0-3]{1}))([:]{1})([0-5]{1}[0-9]{1})$