String.toWellFormed()

String.toWellFormed() - заміна самотніх сурогатів на символ

Синтаксис:

srt.toWellFormed();

Опис:

toWellFormed() метод повертає новий рядок, де всі "самотні сурогати" замінюються на символом - Unicode U+FFFD.

Рядок закодований у UTF-16 містить сурогатні пари. Так як деякі символи у UTF-16, наприклад емодзі або символи з рідкісних алфавітів, займають два кодові символи (сурогатна пара). Якщо рядок містить некоректну сурогатну пару — він вважається неправильно сформованим рядком - що може виникнути помилка при роботі з таким рядком у методі encodeURI() i encodeURIComponent().

Для перевірки чи містить рядок одинокі сурогатні пари використовується метод String.isWellFormed().

Метод String.toWellFormed() входить у специфікацію ES2024.

Приклад

let s = "\uD83D"; console.log( s.toWellFormed() ); // "�" (U+FFFD) var text='\ud834\udd1e - музика'; var text2='\udd1e - музика'; console.log(text); // '𝄞 - музика' console.log( text2.toWellFormed() ); // '� - музика'