2014-09-29 2 views
0

Im пытается сопоставить 24H время в pregmatch и alo пространства и дату, которые будут добавлены на оборотной стороне.
Меня интересует только время, которое является первым 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

ответ

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

+0

@mornenel: Добро пожаловать. Вот хороший сайт: http://www.regular-expressions.info/ – Toto

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

Попробуйте this.You не far.Just, что вы не соответствие am или pm .Увидь демо.

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

+0

oh man, спасибо, но извините. это было бы «23: 20» или подобное. – morne

+0

@mornenel это работает отлично.see demo – vks

+1

Но как насчет того, есть ли время после этого. Он не находит его. – morne

Смежные вопросы