Перейти до вмісту

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()

Чи була ця сторінка корисною?