регулярное выражение для проверки времени

Я хочу проверить время с помощью регулярного выражения. Я создал следующее выражение:

'#^([01][0-9])|(2[0-4])(:[0-5][0-9]){1,2}$#'

Вот проблема:

<?php
var_dump(preg_match('#^([01][0-9])|(2[0-4])(:[0-5][0-9]){1,2}$#', '14:25'));
// Returns 1 (OK)

var_dump(preg_match('#^([01][0-9])|(2[0-4])(:[0-5][0-9]){1,2}$#', '25:25'));
// Returns 0 (OK)

var_dump(preg_match('#^([01][0-9])|(2[0-4])(:[0-5][0-9]){1,2}$#', '14:2555'));
// Returns 1 (instead of 0 as I would like to get)
?>

Кто-нибудь знает, что не так?

10
задан Fionnuala 2 July 2012 в 16:29
поделиться