Как работает шаблон
| Часть | Значение |
|---|---|
[A-Za-z0-9_-]+ | Заголовок в кодировке base64url |
\. | Точка |
[A-Za-z0-9_-]+ | Полезная нагрузка (payload) |
[A-Za-z0-9_-]*$ | Подпись (пустая для неподписанных токенов) |
Примеры кода
JavaScript
const re = /^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*', value))PHP
preg_match('/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/', $value) === 1;
Примечания и ограничения
Совпадение формата ещё не означает, что токен действителен, поэтому подпись всегда проверяйте на сервере. Разобрать токен можно с помощью JWT Decoder.
Тестер регулярных выражений
Введите шаблон и смотрите, как совпадения подсвечиваются прямо в тестовом тексте.
Часто задаваемые вопросы
Какое регулярное выражение для JSON Web Token (JWT)?
/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/ — совпадает со всей строкой. Что делает каждая часть, см. в таблице выше.
Какие примеры совпадают?
Из проверенных примеров совпадают: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.sig_abc-123, eyJhbGciOiJub25lIn0.eyJzdWIiOiIxIn0.. Остальные не совпадают.
Как протестировать это регулярное выражение?
Нажмите «Открыть в Regex Tester» — шаблон, флаги и примеры текста загрузятся автоматически, а совпадения будут подсвечиваться по мере редактирования.