Spec-Zone.ru › Web APIs

URLPattern: конструктор URLPattern()

Ограниченная доступность

Эта функция не является базовой, так как она не работает в некоторых из наиболее широко используемых браузеров.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Экспериментальная функция: Это экспериментальная технология
Перед использованием в рабочей среде внимательно ознакомьтесь с таблицей совместимости браузеров.

Примечание: Эта функция доступна в Web Workers.

Конструктор URLPattern() возвращает новый объект URLPattern, представляющий шаблон URL, определённый параметрами.

Синтаксис

new URLPattern(input)
new URLPattern(input, baseURL)
new URLPattern(input, options)
new URLPattern(input, baseURL, options)

Параметры

input

Входной шаблон, который будет использоваться для сопоставления. Это может быть строка или объект, предоставляющий шаблоны для каждой части URL индивидуально. Члены объекта могут быть следующими:

  • protocol
  • username
  • password
  • hostname
  • port
  • pathname
  • search
  • hash
  • baseURL

Примечание: Пропущенные части объекта будут обрабатываться как подстановочные знаки (*).

baseURL Необязательный

Строка, представляющая базовый URL, который используется в случаях, когда input является относительным шаблоном. Если не указано, по умолчанию используется undefined.

options Необязательный

Объект, предоставляющий параметры для сопоставления заданного шаблона. Возможные члены объекта:

ignoreCase Необязательный

Включает регистронезависимое сопоставление, если значение равно true. Если опущен или установлен в false, сопоставление будет регистрозависимым.

Исключения

TypeError

Указывает на следующее:

  • Указанный input или baseURL недействителен или синтаксически неверен.
  • Указанный input относительный, но не предоставлен baseURL для формирования полного абсолютного URL.
  • Предоставлен baseURL , а входной шаблон – абсолютный или структурированный объект.

Примеры

Сопоставление пути

let pattern1 = new URLPattern("https://example.com/books/:id");

// same as
let pattern2 = new URLPattern("/books/:id", "https://example.com");

// or
let pattern3 = new URLPattern({
  protocol: "https",
  hostname: "example.com",
  pathname: "/books/:id",
});

// or
let pattern4 = new URLPattern({
  pathname: "/books/:id",
  baseURL: "https://example.com",
});

Сопоставление протокола и домена

let pattern = new URLPattern({
  protocol: "http{s}?",
  hostname: ":subdomain.example.com",
});

Сопоставление всех возможных структурированных частей

let pattern = new URLPattern({
  protocol: "http{s}?",
  username: ":username",
  password: ":password",
  hostname: ":subdomain.example.com",
  port: ":port(80|443)",
  pathname: "/:path",
  search: "*",
  hash: "*",
});

Регистронезависимое сопоставление

// Case-sensitive matching by default
const pattern = new URLPattern("https://example.com/2022/feb/*");
console.log(pattern.test("https://example.com/2022/feb/xc44rsz")); // true
console.log(pattern.test("https://example.com/2022/Feb/xc44rsz")); // false

Установка параметра ignoreCase в true в конструкторе переключает все операции сопоставления на регистронезависимое для заданного шаблона:

// Case-insensitive matching
const pattern = new URLPattern("https://example.com/2022/feb/*", {
  ignoreCase: true,
});
console.log(pattern.test("https://example.com/2022/feb/xc44rsz")); // true
console.log(pattern.test("https://example.com/2022/Feb/xc44rsz")); // true

Примечания по использованию

Входной шаблон конструктора URLPattern может иметь две формы — объект шаблона или строка шаблона и необязательный baseURL.

new URLPattern(obj);
new URLPattern(pattern);
new URLPattern(pattern, baseURL);

Первый тип конструктора принимает объект, описывающий URL, которые должны быть сопоставлены путём задания шаблонов для каждой отдельной части URL. Его члены могут быть protocol, username, password, hostname, port, pathname, search, hash или baseURL. Если свойство baseURL предоставлено, оно будет обработано как URL и использовано для заполнения любых отсутствующих свойств. Если свойство baseURL отсутствует, любые другие отсутствующие свойства по умолчанию будут подстановочным знаком *, принимающим любой ввод.

Второй тип конструктора принимает строку URL, содержащую встроенные в неё шаблоны. Строка URL может быть относительной, если baseURL предоставлена как второй аргумент. Обратите внимание, что может потребоваться экранировать некоторые символы в строке URL, если неясно, является ли символ разделителем различных компонентов URL или частью шаблона. Например, необходимо написать about\\:blank для указания того, что : – это суффикс протокола, а не начало шаблона именованной группы :blank.

Спецификации

Спецификация
Шаблон URL
# dom-urlpattern-urlpattern

Совместимость браузеров

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet WebView Android
URLPattern 95 95 Нет 81 Нет 95 Нет 67 Нет 17.0 95
ignoreCase_option 107 107 Нет 93 Нет 107 Нет 73 Нет 21.0 107

См. также

  • Полифил URLPattern доступен на GitHub

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/URLPattern/URLPattern

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API