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

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