substring() в JavaScript

substring() возвращает часть строки между двумя индексами.

let text = 'JavaScript';

console.log(text.substring(0, 4));

Результат:

Java

Метод взял символы с индекса 0 до индекса 4. Символ с индексом 4 в результат не попал.

Что такое substring()

substring() - это метод строки, который получает часть строки и возвращает ее как новую строку.

let message = 'Привет, Анна';

console.log(message.substring(8, 12));

Результат:

Анна

Метод похож на slice(), но у него есть несколько особенностей.

Синтаксис

Основная запись выглядит так:

string.substring(start, end);

start - индекс, с которого начинается часть строки.

end - индекс, перед которым нужно остановиться.

let word = 'JavaScript';

console.log(word.substring(4, 10));

Результат:

Script

Начальный и конечный индекс

Первый аргумент указывает начало, второй - конец. Конечный индекс не включается в результат.

let word = 'котенок';

console.log(word.substring(0, 3));

Результат:

кот

Метод взял символы с индексами 0, 1 и 2.

Один аргумент

Если передать один аргумент, substring() вернет строку от этого индекса до конца.

let word = 'JavaScript';

console.log(word.substring(4));

Результат:

Script

Если начало больше конца

Если первый индекс больше второго, substring() поменяет их местами.

let word = 'JavaScript';

console.log(word.substring(4, 0));

Результат:

Java

Запись substring(4, 0) сработала так же, как substring(0, 4).

Отрицательные индексы

substring() не работает с отрицательными индексами так, как slice().

let word = 'JavaScript';

console.log(word.substring(-6));

Результат:

JavaScript

Отрицательное значение метод воспринимает как 0. Поэтому результатом стала вся строка.

substring() и slice()

substring() и slice() часто дают одинаковый результат.

let word = 'JavaScript';

console.log(word.substring(0, 4));
console.log(word.slice(0, 4));

Результат:

Java
Java

Но есть отличия.

  • substring() меняет аргументы местами, если первый больше второго.
  • slice() в такой ситуации вернет пустую строку.
  • slice() поддерживает отрицательные индексы.
  • substring() отрицательные значения воспринимает как 0.

Строка не меняется

substring() не изменяет исходную строку. Он возвращает новое значение.

let word = 'JavaScript';
let part = word.substring(0, 4);

console.log(word);
console.log(part);

Результат:

JavaScript
Java

Итого

substring() возвращает часть строки между двумя индексами.

  • substring(start, end) берет строку от start до end.
  • Конечный индекс не включается в результат.
  • Если передать один аргумент, метод вернет строку от него до конца.
  • Если start больше end, метод поменяет их местами.
  • Отрицательные значения воспринимаются как 0.
  • Исходная строка не меняется.