JS метод Global.decodeURI()
Загальний опис
decodeURI()
- це вбудований метод в JavaScript, що дозволяє декодувати єдиний закодований компонент URI. Коли ми говоримо про URI, ми маємо на увазі Уніфікований Ідентифікатор Ресурсу, що є способом ідентифікації будь-якого ресурсу в інтернеті, будь то веб-сторінка, зображення або файл.
Спочатку розглянемо, навіщо потрібен decodeURI()
. Подумайте про ситуації, коли ви хочете передати деякі параметри через URL, які можуть містити символи, які не допустимі в стандартних URL. Наприклад, пробіл або спеціальний символ. У таких випадках ці символи кодуються у вигляді, що може бути включений у URI. Тут decodeURI()
може бути корисним, коли вам потрібно отримати ці параметри назад у їхньому первісному вигляді.
Розглянемо практичний приклад. Припустимо, у нас є такий URL:
https://example.com/?name=Ivan%20Petrov
. Якщо ми хочемо отримати ім'я користувача в зручному для читання форматі, нам потрібно використовувати decodeURI()
.
let encodedURI = "https://example.com/?name=Taras%20Shevchuk";
let decodedURI = decodeURI(encodedURI);
console.log(decodedURI); // виведе "https://example.com/?name=Taras 20Shevchuk"
Що стосується основних особливостей та прийомів роботи, decodeURI()
відмінно справляється зі своєю основною задачею, але має деякі нюанси, які важливо розуміти. Цей метод не буде декодувати символи, які мають спеціальний зміст в URI, такі як :
, /
, ?
та #
.
Порада: | Для початківців важливо розуміти, що не кожний URI потребує декодування. Якщо URI не містить закодованих символів, використання Приклад:
|
Порада: | Для новачків важливо розуміти, що якщо ви викликаєте |
Порада: | Комбінуйте Приклад:
Таким чином, ви отримаєте повністю декодований URI, але лише для його частин, які потребують цього. |
Синтаксис
decodeURI(encodedURI)
Параметри
- *
encodedURI
Повний закодований Uniform Resource Identifier (URI). Рядок, який раніше був закодований за допомогою
encodeURI()
або інших подібних методів.
Return
string
Повертає новий рядок, який представляє декодовану версію заданого закодованого Uniform Resource Identifier (URI).
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
1.1 |
7 |
12 |
Переглядач | ||||
---|---|---|---|---|
4.4 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
0.10.0 |
1.0 |
Приклади
У цьому прикладі користувач може вставити або ввести закодований URI у поле введення, а потім натиснути кнопку, щоб отримати його декодовану версію. Закодований URI може містити ряд символів, які були перетворені на відсотково кодовану форму. Функція decodeUriFunction()
зчитує це значення, декодує його за допомогою decodeURI
і виводить результат у параграфі з id "output".
У цьому прикладі ми маємо URI, який містить закодований параметр запиту. Ми використовуємо decodeURI
для того, щоб декодувати закодований параметр і отримати зрозумілий текст "Приклад" замість послідовності символів %D0%9F%D1%80%D0%B8%D0%BA%D0%BB%D0%B0%D0%B4
.
// Закодований URI, який містить параметри запиту
let encodedUri = "https://example.com/search?query=%D0%9F%D1%80%D0%B8%D0%BA%D0%BB%D0%B0%D0%B4";
// Використовуємо decodeURI для декодування URI
let decodedUri = decodeURI(encodedUri);
console.log(decodedUri); // Виведе: "https://example.com/search?query=Приклад"
У цьому прикладі ми перевіряємо, чи містить URI закодовані символи, перед тим як його декодувати. Це корисно для уникнення непотрібного декодування, якщо URI вже є у декодованому стані. Якщо URI містить символ %
, це може вказувати на наявність закодованих символів, і тому ми використовуємо decodeURI
для декодування цього URI. У виведеному результаті /dashboard
буде відображатися як нормальний шлях, замість %2Fdashboard
.
// URI, який містить спеціальні символи
let specialUri = "https://example.com/data?id=123&ref=%2Fdashboard";
// Перевірка на наявність закодованих символів перед декодуванням
if (specialUri.includes('%')) {
console.log(decodeURI(specialUri)); // Виведе: "https://example.com/data?id=123&ref=/dashboard"
} else {
console.log(specialUri);
}