JS: как взять первые 5 символов строки

Чтобы взять первые 5 символов строки в JavaScript, используйте slice(0, 5). Запись [0-5] для строки не подходит: это не диапазон символов. В JavaScript индексы начинаются с нуля, а второй аргумент slice не включается в результат

Пример:

const text = "JavaScript";

console.log(text.slice(0, 5)); // JavaS

Результат:

JavaS

Почему именно slice(0, 5)

В строке JavaScript первые символы имеют индексы:

J -> 0
a -> 1
v -> 2
a -> 3
S -> 4
c -> 5

slice(0, 5) берет символы с индекса 0 до индекса 5, не включая 5. Поэтому в результат входят индексы 0, 1, 2, 3, 4 — ровно пять символов

Почему не [0-5]

Такая запись не делает диапазон:

text[0-5]

Выражение 0-5 сначала вычислится как -5. То есть получится попытка взять text[-5], а это не то, что нужно

Правильно:

text.slice(0, 5)

Сравнить первые 5 символов

Если нужно не просто взять, а проверить начало строки:

const code = "SALE-2026";

if (code.slice(0, 5) === "SALE-") {
  console.log("Это промокод");
}

Если нужно проверить начало без ручного количества символов, часто удобнее startsWith:

if (code.startsWith("SALE-")) {
  console.log("Это промокод");
}

Что будет с короткой строкой

Если строка короче пяти символов, slice(0, 5) вернет всю строку:

console.log("JS".slice(0, 5)); // JS

Это нормально. Ошибки не будет. Но если вам нужно строго проверять длину, добавьте условие:

if (text.length >= 5) {
  console.log(text.slice(0, 5));
}

slice и substring

Для первых пяти символов можно написать и так:

text.substring(0, 5)

Но в учебных задачах я бы выбирал slice: он часто встречается не только в строках, но и в массивах, и его удобно запомнить как общий прием «взять часть»

Когда использовать slice, а когда startsWith

Если нужно получить кусок строки и дальше с ним работать, используйте slice:

const prefix = code.slice(0, 5);
console.log(prefix);

Если нужно только проверить начало строки, чаще читается startsWith:

if (code.startsWith("USER-")) {
  console.log("Код пользователя");
}

Оба варианта нормальные. Разница в намерении: slice возвращает фрагмент, startsWith отвечает на вопрос «начинается ли строка так»

Проверка с пробелами и регистром

В пользовательском вводе часто бывают лишние пробелы:

const rawCode = " user-1289 ";
const normalizedCode = rawCode.trim().toUpperCase();

console.log(normalizedCode.slice(0, 5)); // USER-

trim() убирает пробелы по краям, toUpperCase() приводит строку к одному регистру. Это полезно, если пользователь может ввести user-1289, USER-1289 или строку с пробелом в начале

Практический пример с input

<input id="code" placeholder="Введите код">
<button id="check">Проверить</button>
<p id="result"></p>

<script>
  const code = document.querySelector("#code");
  const check = document.querySelector("#check");
  const result = document.querySelector("#result");

  check.addEventListener("click", () => {
    result.textContent = code.value.slice(0, 5);
  });
</script>

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

Частые ошибки

Думать, что второй индекс включается

В slice(0, 5) символ с индексом 5 не входит в результат

Писать квадратные скобки как диапазон

Квадратные скобки берут один символ по индексу:

text[0]

Для диапазона нужен метод

Не учитывать регистр

"Sale-" и "SALE-" — разные строки. Для сравнения без регистра используйте toLowerCase()

Мини-задание

Возьмите строку USER-1289 и проверьте, начинается ли она с USER-. Сделайте два варианта: через slice(0, 5) и через startsWith

Что почитать дальше по JavaScript

Если нужен общий маршрут по теме, откройте рубрику JavaScript. Для соседних задач пригодятся эти разборы:

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x