Javascript символ его коду

Содержание
  1. JavaScript String charCodeAt()
  2. See Also:
  3. charCodeAt() vs codePointAt()
  4. Syntax
  5. Parameters
  6. Return Value
  7. More Examples
  8. Related Pages
  9. Browser Support
  10. String.prototype.charCodeAt()
  11. Синтаксис
  12. Параметры
  13. Описание
  14. Примеры
  15. Пример: использование метода charCodeAt()
  16. Пример: исправление метода charCodeAt() для обработки символов не в Базовой многоязыковой плоскости, если их предыдущее присутствие в строке неизвестно
  17. Пример: исправление метода charCodeAt() для обработки символов не в Базовой многоязыковой плоскости, если их предыдущее присутствие в строке известно
  18. Спецификации
  19. Совместимость с браузерами
  20. Смотрите также
  21. JavaScript | Как получить символ по символьному коду?
  22. Как конвертировать один символьный код в символьную строку при помощи JavaScript?
  23. Зачем искать по символьному коду? Применение на практике
  24. Почему лучше всего искать по символьному коду?
  25. Методы charAt и charCodeAt — Возвращаем символ и КОД символа
  26. Метод charAt — Возвращаем символ строки
  27. Метод charCodeAt — Возвращаем КОД символа строки
  28. Юникод U+ и HTML-код символов — Коды букв русского алфавита
  29. Методы charAt и charCodeAt — Рассмотрим реальный пример

JavaScript String charCodeAt()

The charCodeAt() method returns the Unicode of the character at a specified index (position) in a string.

The index of the first character is 0, the second is 1, .

The index of the last character is string length — 1 (See Examples below).

See Also:

charCodeAt() vs codePointAt()

charCodeAt() is UTF-16, codePointAt() is Unicode.

charCodeAt() returns a number between 0 and 65535.

Both methods return an integer representing the UTF-16 code of a character, but only codePointAt() can return the full value of a Unicode value greather 0xFFFF (65535).

For more information about Unicode Character Sets, visit our Unicode Reference.

Syntax

Parameters

Return Value

Type Description
A number The Unicode of the character at the specified index.
NaN if the index is invalid.
Читайте также:  String getchars in java

More Examples

Get the Unicode of the last character in a string:

Get the Unicode of the 15th character:

Browser Support

charCodeAt() is an ECMAScript1 (ES1) feature.

ES1 (JavaScript 1997) is fully supported in all browsers:

Chrome Edge Firefox Safari Opera IE
Yes Yes Yes Yes Yes Yes

Источник

String.prototype.charCodeAt()

Метод charCodeAt() возвращает числовое значение Юникода для символа по указанному индексу (за исключением кодовых точек Юникода, больших 0x10000).

Синтаксис

Параметры

Целое число больше, либо равное 0 и меньше длины строки; если параметр не является числом, он устанавливается в 0.

Описание

Кодовые точки Юникода простираются в диапазоне от 0 до 1114111 (0x10FFFF). Первые 128 кодовых точек Юникода напрямую отображаются в кодировку ASCII. Информацию по Юникоду смотрите в Руководстве по JavaScript.

Обратите внимание, что метод charCodeAt() всегда возвращает значение, меньшее 65536. Так происходит потому, что большие кодовые точки представляются парой (меньших значений) «суррогатных» псевдо-символов, которые используются для составления настоящего символа. Поэтому для того, чтобы получить полный символ для значений символов от 65536 и выше, необходимо получить не только значение charCodeAt(i) , но также значение charCodeAt(i + 1) (как если бы строка состояла из двух букв). Смотрите второй и третий примеры ниже.

Метод charCodeAt() возвращает NaN , если указанный индекс меньше нуля или больше длины строки.

Обратная совместимость: в более старых версиях (например, в JavaScript 1.2) метод charCodeAt() возвращал число из кодировки ISO-Latin-1 по указанному индексу. Диапазон символов в кодировке ISO-Latin-1 простирается от 0 до 255. Первые 127 чисел напрямую отображаются в кодировку ASCII.

Примеры

Пример: использование метода charCodeAt()

В следующем примере возвращается число 65, значение Unicode для латинского символа «A».

'ABC'.charCodeAt(0); // вернёт 65 

Пример: исправление метода charCodeAt() для обработки символов не в Базовой многоязыковой плоскости, если их предыдущее присутствие в строке неизвестно

Эта версия может использоваться в циклах for, даже когда неизвестно, были ли до указанной позиции символы из не-БМП.

function fixedCharCodeAt(str, idx)  // например, fixedCharCodeAt('\uD800\uDC00', 0); // 65536 // например, fixedCharCodeAt('\uD800\uDC00', 1); // false idx = idx || 0; var code = str.charCodeAt(idx); var hi, low; // Старшая часть суррогатной пары (последнее число можно изменить на 0xDB7F, // чтобы трактовать старшую часть суррогатной пары в частной плоскости как // одиночный символ) if (0xD800  code && code  0xDBFF)  hi = code; low = str.charCodeAt(idx + 1); if (isNaN(low))  throw 'Старшая часть суррогатной пары без следующей младшей в fixedCharCodeAt()'; > return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000; > if (0xDC00  code && code  0xDFFF)  // Младшая часть суррогатной пары // Мы возвращаем false, чтобы цикл пропустил эту итерацию, // поскольку суррогатная пара // уже обработана в предыдущей итерации return false; // hi = str.charCodeAt(idx - 1); // low = code; // return ((hi - 0xD800) * 0x400) + // (low - 0xDC00) + 0x10000; > return code; > 

Пример: исправление метода charCodeAt() для обработки символов не в Базовой многоязыковой плоскости, если их предыдущее присутствие в строке известно

function knownCharCodeAt(str, idx)  str += ''; var code, end = str.length; var surrogatePairs = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; while ((surrogatePairs.exec(str)) != null)  var li = surrogatePairs.lastIndex; if (li - 2  idx)  idx++; > else  break; > > if (idx >= end || idx  0)  return NaN; > code = str.charCodeAt(idx); var hi, low; if (0xD800  code && code  0xDBFF)  hi = code; low = str.charCodeAt(idx + 1); // Перешагиваем через один, поскольку один «символ» является частью суррогатной пары return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000; > return code; > 

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

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Методы charAt и charCodeAt — Возвращаем символ и КОД символа

Рассмотрим работу двух методов объекта String — это методы charAt и charCodeAt .

Первый позволяет узнать, какой символ содержит строка под определенным индексом.

Второй позволяет узнать, какой код имеет символ строки под определенным индексом.

Метод charAt — Возвращаем символ строки

Метод charAt возвращает символ строки по указанному индексу .

Напомним : каждый элемент (символ) строки имеет порядковый номер — индекс. При этом отсчет ведется с 0 .

Рассмотрим пример с произвольным строковым значением переменной (или с произвольным объектом String ).

document. write ( name . charAt ( 2 )); /* Выводим на экран символ строки под индексом 2 */

Итак, в этом примере мы вывели на экран 3-й символ строки — букву «р» , имеющую индекс 2 (отсчет символов ведется с 0 ).

Метод charCodeAt — Возвращаем КОД символа строки

Метод charCodeAt возвращает код символа строки по указанному индексу .

В JavaScript каждый символ имеет код, который может быть использован в некоторых случаях. Далее мы проработаем этот момент.

А сейчас вернемся к предыдущему примеру и посмотрим, как работает метод charCodeAt .

document. write ( name . charCodeAt ( 2 )); /* Выводим на экран КОД символа строки под индексом 2 */

При помощи метода charCodeAt мы вывели на экран код 3-го символа строки (имеющего индекс 2 ), то есть код буквы «р» — это число «1088» .

Юникод U+ и HTML-код символов — Коды букв русского алфавита

Наверное, некоторым из Вас не ясно, о каком коде шла речь , когда мы рассматривали метод charCodeAt ?

Любой символ : знаки препинания, заглавные и строчные русские и латинские буквы и т.д. — все они имеют свой код в кодировке Unicode , а также HTML-код .

Для примера вернемся к букве «р» из предыдущего примера.

Она имеет Юникод U+0440 и HTML-код р

Так вот JavaScript в результате работы метода charCodeAt , выдает нам именно цифровую часть HTML-кода указанного символа.

Теперь, при помощи метода charCodeAt выясним, какие коды имеют русские заглавные и строчные буквы?

var letter_UP = «АЯ» ;
var letter_DOWN = «ая» ;

var first_letter_UP = letter_UP . charCodeAt ( 0 ); /* Заносим в переменную код заглавной буквы А */
var last_letter_UP = letter_UP . charCodeAt ( 1 ); /* Заносим в переменную код заглавной буквы Я */
document. write ( «Русские ЗАГЛАВНЫЕ буквы имеет код, начиная с » + first_letter_UP + » и заканчивая » + last_letter_UP );

var first_letter_DOWN = letter_DOWN . charCodeAt ( 0 ); /* Заносим в переменную код буквы а */
var last_letter_DOWN = letter_DOWN . charCodeAt ( 1 ); /* Заносим в переменную код буквы я */
document. write ( «Русские строчные буквы имеет код, начиная с » + first_letter_DOWN + » и заканчивая » + last_letter_DOWN );

document. write ( «Таким образом, коды ВСЕХ русских букв находятся в диапазоне от » + first_letter_UP + « и до » + last_letter_DOWN + « ВКЛЮЧИТЕЛЬНО» );

Методы charAt и charCodeAt — Рассмотрим реальный пример

Рассмотрим реальный пример использования методов charAt и charCodeAt . Необходимо написать код, который будет делать следующее:

1. Нужно попросить у пользователя ввести Имя русскими буквами (любыми — строчными или заглавными).

2. При этом проверить, нет ли в имени помимо русских букв других символов.

3. Затем при написании имени, нужно будет пробовать вводить одну/несколько латинских букв вместо русских.

Для решения этой задачи нужно будет вспомнить тему циклов и просмотреть заметку логические операторы И и ИЛИ в Javascript. Также нужен будет метод prompt объекта Window.

Для составления условия нужен будет диапазон кодов для всех букв русского алфавита (заглавных и строчных). См. предыдущий пример.

var name = «АнтоQ» ; /* Делаем намеренно в Имени ошибку — это буква Q */

document. write ( «Вы ввели имя , » + name + «

» );

var i = 0 ; /* Создаём переменную i — это счётчик. i = 0, так как 0 — это индекс первой буквы имени */

if( name . charCodeAt ( i ) < 1040 || name . charCodeAt ( i ) >1103 ) /* Если КОД текущего символа в имени не попадает в диапазон кодов для букв русского алфавита, то выводим об этом сообщение. */

document. write ( «В имени присутствует недопустимый символ » + name . charAt ( i ) + «. Используйте только русские буквы!

» ); /* Выводим недопустимый символ */
>

i ++ ; /* Прибавляем к счетчику единицу */

Итак, в этом примере при помощи цикла while, условия ИЛИ и метода charCodeAt мы поочереди проверили каждую букву в имени на предмет попадания ее КОДа в диапазон кодов для всех букв русского алфавита.

А при помощи метода charAt — вывели на экран недопустимый символ.

Эту же задачу можно реализовать при помощи цикла for. Смотрите пример ниже.

document. write ( «Вы ввели имя , » + name + «

» );

document. write ( «В имени присутствует недопустимый символ » + name . charAt ( i ) + «. Используйте только русские буквы!

» );
>

И, наконец, добавим метод prompt. Попробуйте в результате самостоятельно ввести любое имя, добавив в него несколько латинских букв.

var name = prompt ( «Введите Ваше имя» ); /* Создаем поле для ввода Имени */

document. write ( «Вы ввели имя , » + name + «

» );

document. write ( «В имени присутствует недопустимый символ » + name . charAt ( i ) + «. Используйте только русские буквы!

» );
>

Источник

Оцените статью