Как работает шаблон
| Часть | Значение |
|---|---|
\d{4}-\d{2}-\d{2} | Дата |
T | Буквальный разделитель T |
\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)? | Часы и минуты, необязательные секунды и доли секунды |
(?:Z|[+-]\d{2}:\d{2}) | Z для UTC или смещение вида +05:30 |
Примеры кода
JavaScript
const re = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:\d{2})$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:\d{2})', value))PHP
preg_match('/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:\d{2})$/', $value) === 1;
Примечания и ограничения
Для этого формата требуется часовой пояс, что исключает неоднозначные метки времени. new Date().toISOString() в JavaScript всегда даёт совпадающую строку. Преобразовывать метки времени можно с помощью конвертера Unix-времени.
Тестер регулярных выражений
Введите шаблон и смотрите, как совпадения подсвечиваются прямо в тестовом тексте.