JS метод Global.escape()
Загальний опис
escape() - це метод JavaScript, який призначений для перетворення певних символів у рядку на їхні закодовані у вигляді URI еквіваленти. Цей метод був досить популярним в ранніх версіях JavaScript, але зараз він є застарілим і не рекомендується для використання в сучасних застосуваннях.
Спочатку розглянемо, навіщо потрібен escape(). В основному, його використовували для того, щоб перетворити символи у рядку, які могли б порушити структуру URL. Наприклад, пробіл, знак "&" або "?". Якщо такі символи вставити безпосередньо у URL, це може призвести до проблем.
Приклад:
let url = "http://example.com?name=" + escape("John Doe");
У цьому прикладі, якщо не використовувати escape(), пробіл між "John" та "Doe" міг б порушити структуру URL.
Однак, існують і інші методи, такі як encodeURIComponent() і encodeURI(), які виконують подібні завдання, але з деякими важливими відмінностями. escape() не кодує символи такі як "@", "*", "-" і "_", тоді як encodeURIComponent() це робить.
Основні особливості та прийоми роботи з escape():
escape()кодує символи, які не є латинськими літерами, цифрами, а також деякими спеціальними символами, такими як "@", "*", "-" і "_".- Кодування відбувається шляхом заміни символу на "%", за яким слідує два шістнадцяткових символи.
Приклад:
let text = "Hello, World!";
let encodedText = escape(text);
console.log(encodedText); // Hello%2C%20World%21
Для програмістів-початківців важливо розуміти, що, хоча escape() і корисний у певних ситуаціях, його застосування у сучасному програмуванні обмежене. Існують кращі та безпечніші методи для кодування URI, такі як encodeURIComponent() і encodeURI().
- Порада
-
Якщо ви працюєте над старим проектом або вивчаєте старий код, ви можете зустріти використання
автор: Bondescape(). В такому випадку рекомендується замінити його на сучасніший метод кодування для забезпечення найкращої сумісності та безпеки. - Нотатка
-
Важливо знати, які символи кодуються
автор: Bondescape()та іншими сучасними методами. Особливо, якщо ви намагаєтеся декодувати або аналізувати закодовані рядки. Наприклад, символ "@" не буде закодований методомescape(), але буде закодований за допомогоюencodeURIComponent(). - Нотатка
-
Якщо з якоїсь причини вам потрібно працювати з рядками, які були закодовані за допомогою
автор: Bondescape(), використовуйтеunescape()для правильного декодування цих рядків. Проте пам'ятайте, що для рядків, закодованих за допомогоюencodeURIComponent()абоencodeURI(), потрібно використовуватиdecodeURIComponent()таdecodeURI()відповідно.
Синтаксис
escape(str)
Параметри
str-
Рядок, який потрібно закодувати.
автор: Bond
Повернення
string-
Повертає новий рядок, в якому певні символи були замінені на їхні закодовані еквіваленти.
автор: Bond
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 1 | 1 | 1 | 3 | 12 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 1 |
| Переглядач | ||
|---|---|---|
| 0.10.0 | 1.0 |
Приклади
+ запропонувати свій приклад у пісочниці
Цей приклад демонструє, як користувач може ввести рядок у текстове поле та отримати його закодовану версію за допомогою функції escape(). Після введення рядка користувач може натиснути кнопку "Кодувати", і закодована версія рядка відобразиться нижче.
У цьому прикладі ми маємо рядок specialString із спеціальними символами (кома, пробіл та знак питання). Використовуючи метод escape(), ми кодуємо ці спеціальні символи у відсотковий формат. Результатом є рядок "Привіт%2C%20як%20ти%3F", де "%2C" відповідає комі, "%20" - пробілу, та "%3F" - знаку питання.
// Ініціалізація рядка зі спеціальними символами
let specialString = "Привіт, як ти?";
// Використання escape() для кодування рядка
let escapedString = escape(specialString);
console.log(escapedString); // Виведе: "Привіт%2C%20як%20ти%3F"
У цьому прикладі рядок nonASCIIString містить не-ASCII символи (китайські ієрогліфи для слова "Токіо"). Коли ми використовуємо метод escape() для таких символів, він кодує їх у форматі "%uXXXX", де "XXXX" - це шіснадцяткове представлення символа. У нашому випадку, результатом буде рядок "%u674E%u4EAC", який відповідає ієрогліфам "東" та "京" відповідно.
// Ініціалізація рядка із не-ASCII символами
let nonASCIIString = "Місто: 東京";
// Використання escape() для кодування рядка
let escapedNonASCII = escape(nonASCIIString);
console.log(escapedNonASCII); // Виведе: "%u674E%u4EAC"
Коментарі
Коментарів ще немає — будьте першим!