正则表达式匹配 PHP 中的时间

我想用正则表达式检查时间输入格式。


我这样做是为了检查这种格式“H:m”(24 小时格式):


$date = '23:59';


if(!preg_match('/^(2[0-3]|[01]?[0-9]):([0-5]?[0-9])$/', $date)) {

    form_set_error('Error in time format');

}

现在我还需要检查这种格式:


"H:m - H:m"

什么时候


$date = '09:00 - 10:00';

我该如何解决这个问题?


呼唤远方
浏览 240回答 2
2回答

宝慕林4294392

您可以简单地删除开始和结束字符并随时检查它是否匹配,可能类似于:$re = '/(2[0-3]|[01]?[0-9]):([0-5]?[0-9])/m';$date = '09:00 - 10:00';preg_match_all($re, $date, $matches, PREG_SET_ORDER, 0);foreach ($matches as $value) {    echo $value[0] . " is a match \n";}输出09:00 is a match 10:00 is a match结合正则表达式如果您希望组合两个正则表达式,您可以简单地使用逻辑 OR 并将您的表达式放在两个捕获组中:(expression 1)|(expression 2) 
打开App,查看更多内容
随时随地看视频慕课网APP