Урок: найти мягкий дефис в исходном тексте
Мягкий дефис может быть незаметен, пока браузер не выберет перенос в этом месте. В отличие от чисто автоматического переноса он является настоящим символом строки и требует внимания при копировании данных.
Назначение
Мягкий дефис может быть незаметен, пока браузер не выберет перенос в этом месте. В отличие от чисто автоматического переноса он является настоящим символом строки и требует внимания при копировании данных.
Как это работает
Пример собирает слово с U+00AD и выводит кодовые точки. Так можно увидеть скрытую подсказку независимо от текущей ширины отображения. Проверяйте код на фиксированном учебном тексте.
Пример
const text = "интер" + String.fromCodePoint(0x00ad) + "фейс";
console.log(text);
console.log([...text].map(char => "U+" + char.codePointAt(0).toString(16).toUpperCase().padStart(4, "0")));
console.log(text.includes(String.fromCodePoint(0x00ad)));
Что должно получиться
Список кодовых точек содержит U+00AD даже тогда, когда слово выглядит обычным. Символ можно обнаружить программно без предположений о визуальном переносе.
Граница применения и частая ошибка
Не вставляйте мягкие дефисы в идентификаторы, URL и код ради красивого отображения: они могут изменить сравнение и копируемое значение. Поведение буфера обмена проверяйте в нужном браузере. Не удаляйте все невидимые символы из любого языка без разбора их назначения.
Самостоятельная проверка
Покажите слово в узком блоке с hyphens:manual и измените ширину. Затем скопируйте его в редактор с показом символов. Для обычного кода сравните решение через overflow-wrap без изменения исходной строки.