Как работает шаблон
| Часть | Значение |
|---|---|
(?:0?[1-9]|1[0-2]) | Часы от 1 до 12, с необязательным ведущим нулём |
:[0-5]\d | Двоеточие и минуты от 00 до 59 |
? | Необязательный пробел |
[AaPp][Mm] | AM или PM в любом регистре |
Примеры кода
JavaScript
const re = /^(?:0?[1-9]|1[0-2]):[0-5]\d ?[AaPp][Mm]$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'(?:0?[1-9]|1[0-2]):[0-5]\d ?[AaPp][Mm]', value))PHP
preg_match('/^(?:0?[1-9]|1[0-2]):[0-5]\d ?[AaPp][Mm]$/', $value) === 1;
Примечания и ограничения
На 12-часовых часах не бывает 0:00 или 13:00, поэтому оба значения отклоняются.
Тестер регулярных выражений
Введите шаблон и смотрите, как совпадения подсвечиваются прямо в тестовом тексте.
Часто задаваемые вопросы
Какое регулярное выражение для времени в формате 12 часов с AM/PM?
/^(?:0?[1-9]|1[0-2]):[0-5]\d ?[AaPp][Mm]$/ — шаблон проверяет всю строку целиком. Что делает каждая часть, см. в таблице выше.
Какие примеры подходят?
Из проверенных примеров подходят: 9:30 AM, 12:00pm, 07:15 PM. Остальные не подходят.
Как протестировать это регулярное выражение?
Нажмите «Открыть в Regex Tester» — шаблон, флаги и тестовый текст загрузятся автоматически, а совпадения будут подсвечиваться по мере редактирования.