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.
Спасибо за чтение.