Метод 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