Регулярное выражение для соответствия формату времени ЧЧ: ММ - PullRequest
137 голосов
/ 24 сентября 2011

Я хочу регулярное выражение для сопоставления времени в формате ЧЧ: ММ.Вот что у меня есть, и это работает:

^[0-2][0-3]:[0-5][0-9]$

Это соответствует всему с 00:00 до 23: 59.

Однако я хочу изменить это так, 0:00 и 1:00, и т. Д. Также совпадают, а также 00:00 и 01:30.То есть сделать крайнюю левую цифру необязательной, чтобы она соответствовала HH: MM и H: MM.

Есть идеи, как это изменить?Мне нужно, чтобы это работало в javascript и php.

Ответы [ 18 ]

0 голосов
/ 07 марта 2018

Как вы спросили, самый левый необязательный бит, я также сделал самый левый и самый правый бит необязательным, проверьте его

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

Это соответствует

0:0 
00:00
00:0 
0:00
23:59
01:00
00:59

Liveссылка доступна здесь

0 голосов
/ 06 июня 2016

Следующее регулярное выражение поможет проверить формат чч: мм

^([0-1][0-9]|2[0-3]):[0-5][0-9]$
0 голосов
/ 28 марта 2017

Declare

private static final String TIME24HOURS_PATTERN = "([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]";

public boolean validate(final String time) {
    pattern = Pattern.compile(TIME24HOURS_PATTERN);
    matcher = pattern.matcher(time);
    return matcher.matches();
}

Этот метод возвращает "true", когда строка соответствует регулярному выражению.

0 голосов
/ 28 апреля 2015

Вы можете попробовать следующее

^\d{1,2}([:.]?\d{1,2})?([ ]?[a|p]m)?$

Он может обнаружить следующие шаблоны:

2300 
23:00 
4 am 
4am 
4pm 
4 pm
04:30pm 
04:30 pm 
4:30pm 
4:30 pm
04.30pm
04.30 pm
4.30pm
4.30 pm
23:59 
0000 
00:00
0 голосов
/ 04 ноября 2014

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

^[0-1][0-9]:[0-5][0-9]$|^[2][0-3]:[0-5][0-9]$|^[2][3]:[0][0]$
0 голосов
/ 24 сентября 2011

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

^[0-2]?[0-3]:[0-5][0-9]$

Только внесенная мною модификация является самой левой цифрой, необязательна.Остальная часть регулярного выражения такая же.

0 голосов
/ 20 января 2014

Шахта это:

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

Это намного короче

Проверено на нескольких примерах

Match:

  • 00: 00
  • 7: 43
  • 07: 43
  • 19: 00
  • 18: 23 * * тысяча двадцать-одны

И не соответствует ни одному недействительному экземпляру, такому как 25:76 и т. Д. *

0 голосов
/ 17 июля 2014

отметьте это мастер-детектор временных меток регулярное выражение, которое я построил для поиска указанной пользователем метки времени, примеры того, что она будет получать, но, безусловно, НЕ ограничены;

8:30-9:40
09:40-09 : 50
09 : 40-09 : 50
09:40 - 09 : 50
08:00to05:00
08 : 00to05 : 00
08:00 to 05:00
8am-09pm
08h00 till 17h00
8pm-5am
08h00,21h00
06pm untill 9am

Он также подхватит еще много, если время включает цифры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...