Перейти к содержимому

Как узнать код символа в js

  • автор:

Метод charCodeAt

Метод charCodeAt возвращает код символа (числовое значение), стоящего на определенной позиции в строке. Нумерация символов начинается с 0 . Если указанное число больше последнего символа строки, то метод возвращает NaN .

Синтаксис

строка.charCodeAt(номер символа в строке);

Пример

Давайте выведим код буквы ‘A’ (символа с позицией 0 ):

let str = ‘ABC’; let code = str.charCodeAt(0); console.log(code);

Результат выполнения кода:

Пример

Давайте поищем символ, номера которого нет в строке:

let str = ‘ABC’; let code = str.charCodeAt(4); console.log(code);

Результат выполнения кода:

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

  • метод String.fromCharCode ,
    который выполняет обратную операцию
  • метод charAt ,
    который возвращает символ, стоящий на указанной позиции в строке

String.prototype.charCodeAt()

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

Синтаксис

str.charCodeAt(index)

Параметры

Целое число больше, либо равное 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; > 

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

Specification
ECMAScript Language Specification
# sec-string.prototype.charcodeat

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

BCD tables only load in the browser

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

  • String.fromCharCode()
  • String.prototype.charAt()
  • String.fromCodePoint()
  • String.prototype.codePointAt()

String.fromCharCode()

Статический метод String.fromCharCode() возвращает строку, созданную из указанной последовательности значений единиц кода UTF-16.

Синтаксис

String.fromCharCode(num1[, . [, numN]])

Параметры

Последовательность чисел, являющихся значениями единиц кода UTF-16. Диапазон составляет от 0 до 65535 (0xFFFF). Числа больше 0xFFFF усекаются. Проверка достоверности не производится.

Описание

Этот метод возвращает примитивную строку, а не объект String .

Поскольку метод fromCharCode() является статическим методом объекта String , вы всегда должны использовать его как String.fromCharCode() , а не как метод созданного вами экземпляра String .

Примеры

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

Следующий пример вернёт строку «ABC».

.fromCharCode(65, 66, 67); // "ABC" 

Как заставить его работать с большими значениями

Хотя большинство распространённых значений Юникода может быть представлено одним 16-битным числом (как ожидалось на ранней стадии стандартизации JavaScript) и метод fromCharCode() может использоваться для возврата одного символа для самых распространённых значений (точнее, значений UCS-2, которые являются подмножеством самых распространённых символов UTF-16), для работы со ВСЕМИ допустимыми значениями Юникода (занимающими до 21 бита) одного метода fromCharCode() недостаточно. Поскольку большие кодовые точки используют (самое меньшее) два «суррогатных» числа для представления одного символа, для возврата таких пар можно использовать метод String.fromCodePoint() (являющийся частью черновика ES6) и, таким образом, адекватно представлять эти символы.

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

Specification
ECMAScript Language Specification
# sec-string.fromcharcode

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

BCD tables only load in the browser

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

  • String.fromCodePoint()
  • String.prototype.charAt()
  • String.prototype.charCodeAt()
  • String.prototype.codePointAt()

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 20 янв. 2024 г. by MDN contributors.

Your blueprint for a better internet.

JavaScript коды символов (коды клавиш)

Очень часто клиентский JavaScript используется для выполнения простых задач, которые в противном случае потребовалось бы обрабатывать на серверной стороне. Многие из этих простых задач включают обработку текста или символов, введенных в элемент form на веб-странице, для чего бывает необходимо знать код JavaScript, связанный с этим символом.

Нажмите любую клавишу в поле ввода, расположенном ниже, чтобы увидеть, соответствующий этой клавише, код JavaScript. Или прокрутите вниз для просмотра полного списка.

Клавиша Код
backspace 8
tab 9
enter 13
shift 16
ctrl 17
alt 18
pause/break 19
caps lock 20
escape 27
spacebar 32
page up 33
page down 34
end 35
home 36
left arrow 37
up arrow 38
right arrow 39
down arrow 40
insert 45
delete 46
0 48
1 49
2 50
3 51
4 52
5 53
6 54
7 55
8 56
9 57
a/ф 65
b/и 66
c/с 67
Клавиша Код
d/в 68
e/у 69
f/а 70
g/п 71
h/р 72
i/ш 73
j/о 74
k/л 75
l/д 76
m/ь 77
n/т 78
o/щ 79
p/з 80
q/й 81
r/к 82
s/ы 83
t/е 84
u/г 85
v/м 86
w/ц 87
x/ч 88
y/н 89
z/я 90
left window 91
right window 92
select 93
numpad 0 96
numpad 1 97
numpad 2 98
numpad 3 99
numpad 4 100
numpad 5 101
numpad 6 102
Клавиша Код
numpad 7 103
numpad 8 104
numpad 9 105
multiply 106
add 107
subtrack 109
decimal point 110
divide 111
f1 112
f2 113
f3 114
f4 115
f5 116
f6 117
f7 118
f8 119
f9 120
f10 121
f11 122
f12 123
num lock 144
scroll lock 145
semi-colon 186
equal sign 187
comma 188
dash 189
period 190
forward slash 191
grave accent 192
open bracket 219
back slash 220
close bracket 221
single quote 222

Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011 – 2024 © puzzleweb.ru | razumnikum.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *