charCodeAt() — код символу за індексом рядка в JavaScript


Загальний опис

Метод String.prototype.charCodeAt() використовується для отримання числового значення Unicode символу, що стоїть на певному індексі у рядку. Це важливий інструмент при роботі з рядками, адже Unicode є стандартом кодування, що дозволяє представляти та маніпулювати текстом з будь-якої мови систематизовано та однозначно в комп’ютерних системах. Таким чином, charCodeAt() є ключем до розуміння внутрішнього представлення символів рядка, і може бути корисним при розробці функцій шифрування, при перетворенні символів у їхні числові коди або при валідації вводу тексту.

Для використання charCodeAt(), спочатку потрібно мати рядок. Виклик методу відбувається через змінну рядка з передачею індексу, для якого ми хочемо отримати код Unicode. Якщо індекс виходить за межі рядка, метод повертає NaN (що означає "не число").

Приклад простого використання:

let phrase = "Привіт!";
let code = phrase.charCodeAt(0);
console.log(code); // Виведе 1055, код Unicode для символу 'П'

У цьому прикладі, метод повертає Unicode код для символу на позиції 0 у рядку "Привіт!".

charCodeAt() також можна використовувати в циклі, щоб перебрати всі символи рядка та отримати їхні Unicode коди:

for (let i = 0; i < phrase.length; i++) {
  console.log(phrase.charAt(i) + " має Unicode код " + phrase.charCodeAt(i));
}

Цей код виведе Unicode код кожного символу у рядку phrase.

Важливо зазначити, що charCodeAt() повертає код для одиниці коду UTF-16, що використовується для представлення символу. Якщо символ може бути представлений з використанням двох одиниць коду (як це буває з деякими емодзі або історичними мовами), charCodeAt() поверне код тільки першої одиниці коду. Для отримання повної картини в таких випадках може знадобитися використання методу codePointAt(), який надає повний Unicode код.

На практиці, особливо цінною є можливість charCodeAt() працювати з різними системами кодування та виявляти вхідні дані, що не відповідають очікуваним кодовим діапазонам, що може бути корисним при фільтрації тексту або реалізації функціоналу введення даних.

автор: Bond

Порада

Особливо звертайте увагу на те, що індексування в JavaScript починається з нуля. Коли використовуєте charCodeAt(), перший символ рядка має індекс 0. Це означає, що, наприклад, щоб отримати код символу першої літери у рядку, вам потрібно викликати str.charCodeAt(0).

автор: Bond
Порада

Використовуйте charCodeAt() для створення функцій хешування або для перетворення рядків в масиви байтів. Отримані значення можуть бути корисними для створення хеш-кодів або для серіалізації текстових даних у більш компактний або безпечний для передачі через мережу формат.

автор: Bond
Порада

Перевіряйте можливість виникнення NaN у результаті. Метод charCodeAt() поверне NaN, якщо індекс, що передається як аргумент, виходить за межі довжини рядка. Використовуючи цей метод, завжди корисно перевіряти, що ви отримали дійсне числове значення, особливо якщо індекс було отримано динамічно під час виконання програми.

автор: Bond

Синтаксис

charCodeAt(index)

Параметри

index

Індекс на основі нуля символу, код якого потрібно отримати. Цей індекс конвертується в ціле число, а значення undefined конвертується в 0.

автор: Bond

Повернення

integer

Повертає ціле число від 0 до 65535, яке представляє значення кодової одиниці UTF-16 символу на зазначеному індексі. Якщо індекс виходить за межі допустимого діапазону, тобто менший нуля або більший або рівний довжині рядка (str.length), то метод charCodeAt() повертає NaN (Not-a-Number - "не число").

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 4 12 4
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.10.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі використовується метод charCodeAt() для отримання коду символу у рядку. Метод charCodeAt() повертає число, яке представляє UTF-16 код символу на вказаній позиції. Це може бути корисно для визначення кодів символів під час роботи з текстом на низькому рівні.

let text = "Привіт!";
let index = 4;
let charCode = text.charCodeAt(index); // Використовуємо метод charCodeAt() для отримання коду символу
console.log(charCode); // Виводимо код символу 'в', який дорівнює 1074
автор: Bond

У цьому прикладі charCodeAt() застосовується для перетворення рядка в масив його UTF-16 кодів. Цей метод можна використовувати для розшифровки або шифрування тексту, або для перевірки, чи входить символ до певного діапазону кодів.

let text = "Hello, World!";
let charCodes = [];

for (let i = 0; i < text.length; i++) {
  charCodes.push(text.charCodeAt(i)); // Додаємо код кожного символу до масиву
}

console.log(charCodes);
// Виводимо масив кодів символів, наприклад [72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33]
автор: Bond

Цей приклад коду дозволяє користувачам динамічно взаємодіяти з веб-сторінкою: вони можуть ввести символ в текстове поле, і після натискання кнопки на сторінці відображатиметься його Unicode код.

HTML

<header>
  <h2 class="title">charCodeAt()</h2>
  <p class="description">Повертає числове значення Unicode першого символу рядка.</p>
</header>
<main>
  <div class="result">
    <input type="text" id="inputChar" placeholder="Введіть символ" maxlength="1">
    <button onclick="showCharCode()">Отримати код символу</button>
    <p id="charCodeResult"></p>
  </div>
</main>

CSS

body {
  font-size: 16px;
  line-height: 1.5;
  font-family: monospace;
}

header {
  background-color: #f1f1f1;
  margin-bottom: 25px;
  padding: 15px;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}

header h2.title {
  padding-bottom: 15px;
  border-bottom: 1px solid #999;
}

header p.description {
  font-style: italic;
  color: #222;
}

.result {
  background-color: #f8f8f8;
  padding: 15px;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  text-align: center;
}

input[type="text"] {
  margin-right: 10px;
  padding: 5px;
}

button {
  padding: 5px 10px;
}

#charCodeResult {
  margin-top: 15px;
  font-weight: bold;
  color: #333;
}

JS

function showCharCode() {
  var char = document.getElementById('inputChar').value;
  if (char.length === 1) {
    var charCode = char.charCodeAt(0);
    document.getElementById('charCodeResult').textContent = `Код символу "${char}" - ${charCode}.`;
  } else {
    document.getElementById('charCodeResult').textContent = "Будь ласка, введіть один символ.";
  }
}
//# sourceURL=pen.js
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід