Spec-Zone.ru › Web APIs

URLPattern: метод exec()

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

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

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

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

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

Метод exec() интерфейса URLPattern принимает URL или объект с частями URL и возвращает либо объект, содержащий результаты сопоставления URL с шаблоном, либо null если URL не соответствует шаблону.

Синтаксис

exec(input)
exec(input, baseURL)

Параметры

input

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

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

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

Возвращаемое значение

Объект object с ключом inputs содержащим массив аргументов, переданных в функцию, и ключами для каждой из частей URL, содержащими соответствующий вход и соответствующие группы для этой части.

Примеры

В этом примере показано, как использовать метод exec() для сопоставления URL с шаблоном. Пример выводит результат вызовов exec() в консоль.

const pattern = new URLPattern("http{s}?://*.example.com/books/:id");

// Absolute URL strings
console.log(pattern.exec("https://example.com/books/123")); // null
let match = pattern.exec("https://store.example.com/books/123");
console.log(match.inputs); // ['https://store.example.com/books/123']
console.log(match.protocol); // { input: "https", groups: {} }
console.log(match.username); // { input: "", groups: {} }
console.log(match.password); // { input: "", groups: {} }
console.log(match.hostname); // { input: "store.example.com", groups: { "0": "store" } }
console.log(match.port); // { input: "", groups: {} }
console.log(match.pathname); // { input: "/books/123", groups: { "id": "123" } }
console.log(match.search); // { input: "", groups: {} }
console.log(match.hash); // { input: "", groups: {} }

// Relative URL strings
pattern.exec("/books/123", "http://store.example.com"); // returns object
pattern.exec("/books/123", "data:text/plain,hello world!"); // returns object
pattern.exec("/books/123"); // returns null

// Structured objects
pattern.exec({
  pathname: "/books/123",
  baseURL: "http://store.example.com",
}); // returns object
pattern.exec({
  protocol: "https",
  hostname: "store.example.com",
  pathname: "/books/123",
}); // returns object
pattern.exec({
  protocol: "file",
  hostname: "store.example.com",
  pathname: "/books/123",
}); // returns null

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

Спецификация
URL Pattern
# dom-urlpattern-exec

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

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

См. также

  • Полифилл 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/exec

Spec-Zone.ru

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