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