Spec-Zone.ru › Web APIs

URL: метод canParse() статический

Базовая версия 2023
Новое

С декабря 2023 года эта функция работает на последних устройствах и версиях браузеров. Возможно, эта функция не будет работать на старых устройствах или браузерах.

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

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

Статический метод URL.canParse() интерфейса URL возвращает логическое значение, указывающее, может ли быть проанализирован и является ли допустимым абсолютный URL или относительный URL, объединённый с базовым URL.

Это быстрый и простой способ проверить возможность анализа URL без использования блока try...catch. Он возвращает true для тех же значений, для которых конструктор URL() будет успешным, и false для значений, которые приведут к ошибке при использовании конструктора.

Синтаксис

URL.canParse(url)
URL.canParse(url, base)

Параметры

url

Строка или любой другой объект со строковым преобразованием — включая, например, элемент <a> или <area> — представляющий абсолютный или относительный URL. Если url является относительным URL, base является обязательным и будет использоваться в качестве базового URL. Если url является абсолютным URL, указанный base будет проигнорирован.

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

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

Примечание: Аргументы url и base будут преобразованы в строку из переданного значения, точно так же, как и в других веб-API, которые принимают строку. В частности, вы можете использовать существующий объект URL для любого из аргументов, и он будет преобразован в строку по свойству href объекта.

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

true если URL может быть проанализирован и является допустимым; false в противном случае.

Примеры

Этот интерактивный пример демонстрирует использование статического метода URL.canParse() для нескольких значений абсолютных и относительных URL.

В первой части примера определён HTML-элемент <pre> для вывода сообщений, а также метод log() для вывода сообщений.

<pre id="log"></pre>
const logElement = document.getElementById("log");
function log(text) {
  logElement.innerText += `${text}\n`;
}

Далее мы проверяем, поддерживается ли метод URL.canParse() с помощью условия "canParse" in URL. Если метод поддерживается, выводим результат проверки абсолютного URL, относительного URL без базового URL и относительного URL с допустимым базовым URL. Также выводим результат в случае, когда метод URL.canParse() не поддерживается.

if ("canParse" in URL) {
  log("Test valid absolute URL");
  let url = "https://developer.mozilla.org/";
  let result = URL.canParse(url);
  log(` URL.canParse("${url}"): ${result}`);

  log("\nTest relative URL with no base URL");
  url = "/en-US/docs";
  result = URL.canParse(url);
  log(` URL.canParse("${url}"): ${result}`);

  log("\nTest relative URL with valid base URL");
  let baseUrl = "https://developer.mozilla.org/";
  result = URL.canParse(url, baseUrl);
  log(` URL.canParse("${url}","${baseUrl}"): ${result}`);
} else {
  log("URL.canParse() not supported");
}

Наконец, код ниже показывает, что baseUrl не обязательно должен быть строкой. Здесь мы передали объект URL.

if ("canParse" in URL) {
  log("\nTest relative URL with base URL supplied as a URL object");
  let baseUrl = new URL("https://developer.mozilla.org/");
  let url = "/en-US/docs";
  result = URL.canParse(url, baseUrl);
  log(` URL.canParse("${url}","${baseUrl}"): ${result}`);
}

Результаты каждой проверки показаны ниже.

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

Спецификация
URL
# dom-url-canparse

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
canParse_static 120 120 115 106 17 120 115 80 17 25.0 120

См. также

  • URL()
  • Полифил URL.canParse() доступен в core-js

© 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/URL/canParse_static

Spec-Zone.ru

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