Spec-Zone.ru › JavaScript

decodeURIComponent()

Базовый уровень Широко доступен

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

Функция decodeURIComponent() декодирует компонент Uniform Resource Identifier (URI), ранее созданный encodeURIComponent() или аналогичной процедурой.

Попробуйте

function containsEncodedComponents(x) {
  // ie ?,=,&,/ etc
  return decodeURI(x) !== decodeURIComponent(x);
}

console.log(containsEncodedComponents("%3Fx%3Dtest")); // ?x=test
// Expected output: true

console.log(containsEncodedComponents("%D1%88%D0%B5%D0%BB%D0%BB%D1%8B")); // шеллы
// Expected output: false

Синтаксис

decodeURIComponent(encodedURI)

Параметры

encodedURI
Закодированный компонент Uniform Resource Identifier.

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

Новая строка, представляющая декодированную версию заданного закодированного компонента Uniform Resource Identifier (URI).

Исключения

URIError
Выбрасывается, если encodedURI содержит %, за которым не следуют две шестнадцатеричные цифры, или если escape-последовательность не кодирует допустимый символ UTF-8.

Описание

decodeURIComponent() является свойством объекта global.

decodeURIComponent() использует тот же алгоритм декодирования, что описан в decodeURI(). Он декодирует *все* escape-последовательности, включая те, которые не были созданы encodeURIComponent, например -.!~*'().

Примеры

Декодирование кириллического URL-компонента

decodeURIComponent("JavaScript_%D1%88%D0%B5%D0%BB%D0%BB%D1%8B");
// "JavaScript_шеллы"

Обработка ошибок

try {
  const a = decodeURIComponent("%E0%A4%A");
} catch (e) {
  console.error(e);
}

// URIError: malformed URI sequence

Декодирование параметров запроса из URL

decodeURIComponent() нельзя использовать напрямую для разбора параметров запроса из URL. Требуется некоторая подготовка.

function decodeQueryParam(p) {
  return decodeURIComponent(p.replace(/\+/g, " "));
}

decodeQueryParam("search+query%20%28correct%29");
// 'search query (correct)'

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

Спецификация
ECMAScript® 2027 Language Specification
# sec-decodeuricomponent-encodeduricomponent

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

Настольные компьютеры Мобильные устройства Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
decodeURIComponent
1
12
1
7
1.1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0

См. также

  • decodeURI
  • encodeURI
  • encodeURIComponent

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent

Spec-Zone.ru

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