URLPattern сопоставляет полные URL или отдельные компоненты URL.
const users = new URLPattern({ pathname: "/users/:id" });
users.test({ pathname: "/users/42" }); // true
users.exec({ pathname: "/users/42" }).pathname.groups.id; // "42"Конструктор принимает строку шаблона и необязательный базовый URL либо словарь
с protocol, username, password, hostname, port,
pathname, search, hash и baseURL. Параметр
ignoreCase включает сопоставление без учёта регистра.
Синтаксис шаблонов
| Синтаксис | Значение |
|---|---|
:name | Именованный захват сегмента. |
:name(regex) | Именованное пользовательское регулярное выражение. |
(regex) | Безымянное пользовательское регулярное выражение. |
* | Полный подстановочный знак. |
{...} | Группа. |
?, +, * | Модификатор необязательности или повторения. |
\x | Экранированный литерал. |
const api = new URLPattern("https://*.example.com/api/:resource");
api.exec("https://v2.example.com/api/widgets")
.pathname.groups.resource; // "widgets"
const numeric = new URLPattern({ pathname: "/items/:id(\\d+)" });
numeric.test({ pathname: "/items/123" }); // true
const relative = new URLPattern("/items/:id", "https://example.com/");
relative.test("https://example.com/items/7"); // truetest() возвращает логическое значение. exec() возвращает null или результат с входными данными
и группами захвата для каждого компонента. Атрибуты компонентов только для чтения предоставляют
скомпилированный шаблон, а hasRegExpGroups указывает на явные группы регулярных выражений.
Reference
Status: Full · Not measured · since 1.1.0
Exports
| Export | Kind | Status | Notes |
|---|---|---|---|
URLPattern | class | Full | protocol, username, password, hostname, port, pathname, search, hash, hasRegExpGroups, test(), exec() |