JavaScript | Как получить символ по символьному коду?

JavaScript | Как получить символ по символьному коду?

У нас есть символьный код 1067. Мы не знаем что это за символ, но хотим делать по нему проверку строк.

 

Как конвертировать один символьный код в символьную строку при помощи JavaScript?

В решении задачи конвертации символьного кода нам поможет конструктор класса String и его собственный метод fromCharCode().

Код:

String.fromCharCode(1067)

В результате выполнения этого кода нам вернётся строка «Ы» (заглавная буква Ы)

Получили символ Ы по символьному коду 1067 в JavaScript
Получили символ Ы по символьному коду 1067 в JavaScript

 

Зачем искать по символьному коду? Применение на практике

Мы хотим проверить есть ли искомый символ в слове «КРЫСА» по символьному коду:

'КРЫСА'.includes(String.fromCharCode(1067))

Результат работы выражения:

Проверили вхождение символа в строку по символьному коду - JavaScript
Проверили вхождение символа в строку по символьному коду — JavaScript

Мы получили ИСТИНУ, потому что символьный код 1067 обозначает символ «Ы», который входит в состав последовательности символов «КРЫСА». По итогу буква «Ы» входит в слово «КРЫСА».

Плюс данного решения заключается в том, что мы точно знаем, о каком символе идёт речь. Символ языка (в данном случае буква русского алфавита) точно идентифицирован в виде числа.

 

Почему лучше всего искать по символьному коду?

Проблема заключается в том, что не все символы отображаются правильно в разных системах.

Скажу так. Не все символы можно ВИЗУАЛЬНО точно идентифицировать. Некоторые символы ВИЗУАЛЬНО ПОХОЖИ ДРУГ НА ДРУГА, но по факту являются разными.

К таким «нестабильным» символам можно отнести пробелы, дефисы, буквы разных языковых алфавитов и так далее.

Использование символьных кодов позволит НЕ ГАДАТЬ, а точно понимать о каком символе идёт речь и писать более удобный код программы для восприятия.

 

Информационные ссылки

Стандарт ECMAScript — Раздел «String.fromCharCode ( …codeUnits )» — https://tc39.es/ecma262/multipage/text-processing.html#sec-string.fromcharcode