以下是可能性。时间是12小时
Inputs Output should as
"05:30" True
"asasds" FALSE
"05:30:sads" FALSE
"ADAS:05:40" FALSE
"04:30:40" FALSE
以下是我写的代码,
$value = "05:30" ;
if(!preg_match("/(1[012]|0[0-9]):([0-5][0-9])/", $value)){
echo "failed"; exit;
}
echo "passed"; exit;
但如果我给$ value =" 05:30:asdsa"它会打印出来。但是我需要输出" 失败"。
答案 0 :(得分:1)
使用anchors匹配开头和结尾,例如
!preg_match("/^(1[012]|0[0-9]):([0-5][0-9])$/", $value)
//^ See here ^
答案 1 :(得分:0)
我几分钟前就为自己编了代码。它基本上是在00:00到23:59之间进行控制
修改强>
preg_match("/(0?\d|1\d|2[0-3]):[0-5]\d/", $line, $matches_time);
答案 2 :(得分:0)
您需要确保25:30无效。 24:00无效,但00:00有效。 这段代码可以使它完美:
$string='00:34';
$pattern='%^([0-1][0-9])|([2][0-3]):[0-5][0-9]$%';
if(preg_match($pattern,$string))
echo '<b>'.$string.'</b> is a valid time in 24 hours format';
如果您只想检查12小时格式,可以使用以下格式:
$string='09:24';
$pattern='%^([0][0-9])|([1][0-2]):[0-5][0-9]$%';
if(preg_match($pattern,$string))
echo '<b>'.$string.'</b> is a valid time in 12 hours format';