如何使用预匹配验证 hh:mm 中的时间字符串?
How to validate time string in hh:mm using preg match?
以下是以下可能性。时间为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",它会打印为通过。但是我需要输出为“failed”。
使用anchors来匹配开始和结束,例如
!preg_match("/^(1[012]|0[0-9]):([0-5][0-9])$/", $value)
//^ See here ^
几分钟前我刚刚为自己编写了代码。基本上控制在00:00和23:59
之间
编辑
preg_match("/(0?\d|1\d|2[0-3]):[0-5]\d/", $line, $matches_time);
您需要确定 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';
以下是以下可能性。时间为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",它会打印为通过。但是我需要输出为“failed”。
使用anchors来匹配开始和结束,例如
!preg_match("/^(1[012]|0[0-9]):([0-5][0-9])$/", $value)
//^ See here ^
几分钟前我刚刚为自己编写了代码。基本上控制在00:00和23:59
之间编辑
preg_match("/(0?\d|1\d|2[0-3]):[0-5]\d/", $line, $matches_time);
您需要确定 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';