Перейти к содержимому

URLPattern

Сопоставление URL с шаблонами и именованными группами.

На этой странице
Open in ChatGPTOpen in Claude

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"); // true

test() возвращает логическое значение. exec() возвращает null или результат с входными данными и группами захвата для каждого компонента. Атрибуты компонентов только для чтения предоставляют скомпилированный шаблон, а hasRegExpGroups указывает на явные группы регулярных выражений.

Reference

Status: Full · Not measured · since 1.1.0

Exports

ExportKindStatusNotes
URLPatternclassFullprotocol, username, password, hostname, port, pathname, search, hash, hasRegExpGroups, test(), exec()

Была ли эта страница полезной?