From 95aca4b4d8fa62815d4bd412fff1a364f842814a Mon Sep 17 00:00:00 2001 From: Ryan Johnson Date: Thu, 29 Apr 2021 16:16:42 -0700 Subject: remove retired locales (#699) --- .../global_objects/string/normalize/index.html | 226 --------------------- 1 file changed, 226 deletions(-) delete mode 100644 files/uk/web/javascript/reference/global_objects/string/normalize/index.html (limited to 'files/uk/web/javascript/reference/global_objects/string/normalize') diff --git a/files/uk/web/javascript/reference/global_objects/string/normalize/index.html b/files/uk/web/javascript/reference/global_objects/string/normalize/index.html deleted file mode 100644 index 15b56e2bad..0000000000 --- a/files/uk/web/javascript/reference/global_objects/string/normalize/index.html +++ /dev/null @@ -1,226 +0,0 @@ ---- -title: String.prototype.normalize() -slug: Web/JavaScript/Reference/Global_Objects/String/normalize -tags: - - ECMAScript 2015 - - JavaScript - - String - - Unicode - - метод -translation_of: Web/JavaScript/Reference/Global_Objects/String/normalize ---- -
{{JSRef}}
- -

Метод normalize() повертає рядок у формі нормалізації Юнікоду.

- -
{{EmbedInteractiveExample("pages/js/string-normalize.html", "taller")}}
- - - -

Синтаксис

- -
str.normalize([form])
- -

Параметри

- -
-
form {{optional_inline}}
-
-

Одне зі значень "NFC", "NFD", "NFKC" або "NFKD", що вказують форму нормалізації Юнікоду. Якщо не вказана, або дорівнює {{jsxref("undefined")}}, використовується "NFC".

- -

Ці значення означають наступне:

- -
-
"NFC"
-
Канонічна декомпозиція, з подальшою канонічною композицією.
-
"NFD"
-
Канонічна декомпозиція.
-
"NFKC"
-
Сумісна декомпозиція, з подальшою канонічною композицією.
-
"NFKD"
-
Сумісна декомпозиція.
-
-
-
- -

Значення, що повертається

- -

Рядок, що містить форму нормалізації Юнікоду для наданого рядка.

- -

Помилки

- -
-
{{jsxref("RangeError")}}
-
Помилка {{jsxref("RangeError")}} викидається, якщо form не є одним з наведених вище значень.
-
- -

Опис

- -

Юнікод присвоює унікальне числове значення, яке називається кодом символа, кожному символу. Наприклад, кодом символа "A" є U+0041. Однак, іноді більше, ніж один код символа, або послідовність кодів, можуть представляти один і той самий абстрактний символ — наприклад, символ "ñ" може бути представлений:

- - - -
let string1 = '\u00F1';
-let string2 = '\u006E\u0303';
-
-console.log(string1);  //  ñ
-console.log(string2);  //  ñ
-
- -

Однак, оскільки коди символів відрізняються, порівняння рядків не вважатиме їх рівними. А оскільки кількість кодів символів у цих варіантах різна, то вони навіть мають різні довжини.

- -
let string1 = '\u00F1';            // ñ
-let string2 = '\u006E\u0303';      // ñ
-
-console.log(string1 === string2); // false
-console.log(string1.length);      // 1
-console.log(string2.length);      // 2
-
- -

Метод normalize() допомагає вирішити цю проблему, перетворюючи рядок у нормалізовану форму, спільну для усіх послідовностей кодів символів, які представляють однакові символи. Існують дві основні форми нормалізації, одна базується на канонічній еквівалентності, а інша на сумісності.

- -

Нормалізація на основі канонічної еквівалентності

- -

В Юнікоді дві послідовності кодів символів канонічно еквівалентні, якщо вони відображають однакові абстрактні символи, і повинні завжди мати однакове візуальне відображення та поведінку (для прикладу, вони завжди повинні сортуватися однаковим чином).

- -

Ви можете скористатись методом normalize(), використовуючи аргументи "NFD" або "NFC", щоб створити форму рядка, що буде однаковою для усіх канонічно еквівалентних рядків. У наведеному нижче прикладі ми нормалізуємо два відображення символу "ñ":

- -
let string1 = '\u00F1';           // ñ
-let string2 = '\u006E\u0303';     // ñ
-
-string1 = string1.normalize('NFD');
-string2 = string2.normalize('NFD');
-
-console.log(string1 === string2); // true
-console.log(string1.length);      // 2
-console.log(string2.length);      // 2
-
- -

З'єднана та розкладена форми

- -

Зауважте, що довжина нормалізованої форми при використанні "NFD" дорівнює 2. Це тому, що "NFD" дає вам розкладену версію канонічної форми, в якій один код символа розбивається на множину складових. Розкладеною канонічною формою для "ñ" є "\u006E\u0303".

- -

Ви можете вказати "NFC", щоб отримати з'єднану канонічну форму, в якій множина кодів символів замінюється єдиним кодом символу, де це можливо. З'єднаною канонічною формою для "ñ" є "\u00F1":

- -
let string1 = '\u00F1';                           // ñ
-let string2 = '\u006E\u0303';                     // ñ
-
-string1 = string1.normalize('NFC');
-string2 = string2.normalize('NFC');
-
-console.log(string1 === string2);                 // true
-console.log(string1.length);                      // 1
-console.log(string2.length);                      // 1
-console.log(string2.codePointAt(0).toString(16)); // f1
- -

Нормалізація на основі сумісності

- -

В Юнікоді дві послідовності кодів символів є сумісними, якщо вони представляють однакові абстрактні символи, і мають сприйматися однаково у деяких — але не обов'язково в усіх — застосуваннях.

- -

Усі канонічно еквівалентні послідовності також є сумісними, але не навпаки.

- -

Наприклад:

- - - -

У деяких ситуаціях (таких, як сортування) вони мають сприйматися як еквівалентні, а у деяких (таких, як візуальне відображення) — ні, отже, вони не є канонічно еквівалентними.

- -

Ви можете скористатись методом normalize(), використовуючи аргументи "NFKD" або "NFKC", щоб створити форму рядка, яка буде однаковою для усіх сумісних рядків:

- -
let string1 = '\uFB00';
-let string2 = '\u0066\u0066';
-
-console.log(string1);             // ff
-console.log(string2);             // ff
-console.log(string1 === string2); // false
-console.log(string1.length);      // 1
-console.log(string2.length);      // 2
-
-string1 = string1.normalize('NFKD');
-string2 = string2.normalize('NFKD');
-
-console.log(string1);             // ff <- візуальне відображення змінилось
-console.log(string2);             // ff
-console.log(string1 === string2); // true
-console.log(string1.length);      // 2
-console.log(string2.length);      // 2
-
- -

Застосовуючи сумісну нормалізацію, важливо враховувати, що саме ви намагаєтесь зробити з рядками, оскільки нормалізована форма може не підходити для усіх застосувань. У наведеному вище прикладі нормалізація підходить для пошуку, бо дозволяє користувачу знайти рядок пошуком "f". Але вона може не підходити для відображення, бо зовнішній вигляд символа відрізняється.

- -

Як і у випадку з канонічною нормалізацією, ви можете застосовувати розкладену або з'єднану форми, передаючи, відповідно, "NFKD" або "NFKC".

- -

Приклади

- -

Використання normalize()

- -
// Початковий рядок
-
-// U+1E9B: ЛАТИНСЬКА МАЛА ЛІТЕРА ДОВГА S З КРАПКОЮ ЗГОРИ
-// U+0323: ОБ'ЄДНУЮЧА КРАПКА ВНИЗУ
-let str = '\u1E9B\u0323';
-
-
-// Канонічно-з'єднана форма (NFC)
-
-// U+1E9B: ЛАТИНСЬКА МАЛА ЛІТЕРА ДОВГА S З КРАПКОЮ ЗГОРИ
-// U+0323: ОБ'ЄДНУЮЧА КРАПКА ВНИЗУ
-str.normalize('NFC'); // '\u1E9B\u0323'
-str.normalize();      // такий самий
-
-
-// Канонічно-розкладена форма (NFD)
-
-// U+017F: ЛАТИНСЬКА МАЛА ЛІТЕРА ДОВГА S
-// U+0323: ОБ'ЄДНУЮЧА КРАПКА ВНИЗУ
-// U+0307: ОБ'ЄДНУЮЧА КРАПКА ЗГОРИ
-str.normalize('NFD'); // '\u017F\u0323\u0307'
-
-
-// Сумісно-з'єднана (NFKC)
-
-// U+1E69: ЛАТИНСЬКА МАЛА ЛІТЕРА S З КРАПКОЮ ВНИЗУ ТА КРАПКОЮ ЗГОРИ
-str.normalize('NFKC'); // '\u1E69'
-
-
-// Сумісно-розкладена (NFKD)
-
-// U+0073: ЛАТИНСЬКА МАЛА ЛІТЕРА S
-// U+0323: ОБ'ЄДНУЮЧА КРАПКА ВНИЗУ
-// U+0307: ОБ'ЄДНУЮЧА КРАПКА ЗГОРИ
-str.normalize('NFKD'); // '\u0073\u0323\u0307'
-
- -

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

- - - - - - - - - - - - -
Специфікація
{{SpecName('ESDraft', '#sec-string.prototype.normalize', 'String.prototype.normalize')}}
- -

Сумісність з веб-переглядачами

- - - -

{{Compat("javascript.builtins.String.normalize")}}

- -

Див. також

- - -- cgit v1.2.3-54-g00ecf