2014-09-29 22 views
0

我试图匹配24小时pregmatch和低空间和日期后面追加。
我只对前5个字符的时间感兴趣。preg_match时间和允许,但忽略其余

所以时间(前5个字符)和之后的任何事情应该被允许,但被忽略。

例如 23:20 2014-09-29

多远关闭我是谁?

 $time = '10:30'; 
    $pattern = '~^([0-1][0-9]|2[0-3]):([0-5][0-9])$~i'; 
    if (preg_match($pattern, $time, $m)) { 
     print_r(" THATS IS A WRAP"); 
    } else { 
     print_r(" INVALID TIME "); 
    } 

例如 23:20 2014-09-29

+0

你可以举一些例子,接受和错误的句子 – CMPS 2014-09-29 13:54:41

回答

0

只需卸下$锚:

$time = '10:30'; 
$pattern = '~^([0-1][0-9]|2[0-3]):([0-5][0-9])~'; 
//          here __^ 
if (preg_match($pattern, $time, $m)) { 
    print_r(" THATS IS A WRAP"); 
} else { 
    print_r(" INVALID TIME "); 
} 

此外,/i改性剂是多余的,因为这里没有任何字母。

+0

谢谢先生。你能建议任何好的正则表达式教程网站? – morne 2014-09-29 14:14:13

+0

@mornenel:不客气。这是一个很好的网站:http://www.regular-expressions.info/ – Toto 2014-09-29 14:15:23

1
^([0-1][0-9]|2[0-3]):([0-5][0-9])$ 

尝试this.You不是,你是不匹配ampm。看到演示far.Just。

http://regex101.com/r/nA6hN9/5

+0

哦,男人,谢谢,但对不起。这是23:20或类似的情况。 – morne 2014-09-29 13:58:15

+0

@mornenel这是工作fine.see演示 – vks 2014-09-29 14:00:56

+1

但如果之后有一段时间呢?它没有找到它。 – morne 2014-09-29 14:04:32