substr, substring, slice и т. д.

Есть три метода извлечения части строки в JavaScript, может быть, их слишком много. Одного было бы достаточно

substr

Метод substr(start, length) извлекает часть строки, начиная с указанного индекса и возвращая указанное количество символов.

const quote = "Winter is coming";
const part1 = quote.substr(0, 6);
//Winter
const part2 = quote.substr(10, 6);
//coming

Обратите внимание, что первый символ находится в индексе 0.

Индекс start является обязательным, но length необязателен. Если опущено, извлекается остальная часть строки.

const quote = "Winter is coming";
const part = quote.substr(6);
// is coming

подстрока

Метод substring(start, end) возвращает часть строки между индексами start и end. Он начинается с символа в индексе start и заканчивается, но не включает символ в индексе end.

const quote = "We Stand Together";
const part = quote.substring(3, 8);
// Stand

Если индекс end опущен, он извлекается до конца строки.

const quote = "We Stand Together";
const part = quote.substring(3);
// Stand Together

Это прекрасно работает в сочетании с методом indexOf.

Метод indexOf возвращает первый индекс, по которому можно найти заданный текст строки, в противном случае он возвращает -1.

Рассмотрим следующий код, извлекающий текст после первой запятой.

const quote = "You know nothing, Jon Snow";
const commaIndex = quote.indexOf(",");
const part = quote.substring(commaIndex + 1);
//" Jon Snow"

кусочек

Метод slice(start, end) возвращает часть строки между индексами start и end. slice работает как substring.

const quote = "We Stand Together";
const part = quote.slice(3, 8);
// Stand

Если индекс end опущен, он извлекается до конца строки.

const quote = "We Stand Together";
const part = quote.slice(3);
// Stand Together

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

Строки неизменяемы в JavaScript. Все эти методы не изменяют исходную строку.

Чтобы узнать больше о строках, вы можете проверить Как преобразовать значения в строки в JavaScript.

Спасибо за чтение.