Regex для времени (24 часа, ЧЧ:ММ)

Используйте /^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/, чтобы проверить, что вся строка является корректным временем в формате ЧЧ:ММ (24 часа). Каждый пример ниже проверен по этому шаблону, а открыть его в Regex Tester можно с уже загруженными образцами.

Обновлено

/^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/
Открыть в Regex Tester
ВводРезультат
00:00✓ Совпадение
23:59✓ Совпадение
14:30:15✓ Совпадение
09:05✓ Совпадение
24:00✗ Нет совпадения
9:30✗ Нет совпадения
12:60✗ Нет совпадения
12:30:60✗ Нет совпадения

Как работает шаблон

ЧастьЗначение
(?:[01]\d|2[0-3])Часы 00–23
:Двоеточие
[0-5]\dМинуты 00–59
(?::[0-5]\d)?Необязательные секунды

Примеры кода

JavaScript

const re = /^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?', value))

PHP

preg_match('/^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/', $value) === 1;

Примечания и ограничения

Сделайте ведущий ноль необязательным с помощью (?:[01]?\d|2[0-3]), если пользователи вводят 9:30.

Часто задаваемые вопросы

Каково регулярное выражение для времени (24 часа, ЧЧ:ММ)?
/^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/ — совпадает со всей строкой. Что делает каждая часть, см. в таблице выше.
Какие примеры совпадают?
Из проверенных примеров совпадают: 00:00, 23:59, 14:30:15, 09:05. Остальные — нет.
Как протестировать это регулярное выражение?
Нажмите «Открыть в Regex Tester» — шаблон, флаги и образец текста загрузятся автоматически, а совпадения будут подсвечиваться по мере редактирования.