Извлечение последних символов из строки в JavaScript

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для того чтобы получить последние n символов из строки, примените метод .slice(-n):

JS
Скопировать код
let str = 'ExampleString';
let lastN = str.slice(-5); // вернет 'tring'

Если n больше длины строки, метод вернет целую строку — без неожиданных сюрпризов!

Извлечение определенных символов с конца строки

Для извлечения конкретного количества символов с конца строки используйте метод .slice() с отрицательными индексами. Необходимы ли вам последние пять символов? Это совсем просто:

JS
Скопировать код
let lastFive = str.slice(-5); // В результате будет 'tring'

Если n больше длины строки, метод .slice(-n) спокойно возвращают текущую строку.

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

Иногда требуется извлечь символы, расположенные после определенного символа-разделителя, например, нижнего подчеркивания. В этом случае нам помогут .split().pop():

JS
Скопировать код
let divaString = 'underscore_centric';
let lastAct = divaString.split('_').pop(); // на получаем 'centric'

Другие методы на сцене

Если вам более удобно работать с начальной позицией для извлечения, используйте .substring() вместо .slice(). Метод .substr(), который позволял задавать количество извлекаемых символов, стал устаревшим:

JS
Скопировать код
// Пример с .substring()
let position = str.length – 5;
let lastFiveViaSubstring = str.substring(position); // работает также как и .slice(-5)

// Забудьте о .substr(), он уже не востребован 🕺
let lastFiveViaSubstr = str.substr(-5); // Не рекомендуется повторять это!

Как избежать неудач

Обращение с крайними случаями извлечения символов напоминает хождение по полу, усеянному банановыми кожурами:

  • Строка короче n: метод .slice(-n) вернет всю строку, так что о вас нет причин для беспокойства.
  • Пустая строка: врезультате вы получите пустую строку, что вполне ожидаемо.
  • Не строковой ввод: Перед использованием убедитесь, что входные данные были преобразованы в строку, чтобы избежать ошибок.

Производительность: за пределами прямого назначения

При обработке больших строк, где критична производительность, запомните, что .slice() и .substring() обладают схожей эффективностью в большинстве окружений JavaScript. Однако, если каждая миллисекунда имеет значение, проведите индивидуальные производительностные тесты для ваших задач.

Погружение в методы работы со строками

Как .slice(), так и .substr() поддерживают отрицательные индексы, в отличие от .substring(). В свою очередь .substring() ожидает второй аргумент в виде конечного индекса, в то время как .substr() интерпретирует его как количество извлекаемых символов:

JS
Скопировать код
// substring: указываем начальный и конечный индексы
let subStrExample = str.substring(2, 5); // "ample"

// substr: указываем начальный индекс и длину
let substrExample = str.substr(2, 5); // "ampleS" (внезапный S!)

Экскурс по 'стране строк'

Каждый метод извлечения символов из строки – это уникальное представление со своими условностями и особенностями.

Грандиозное открытие занавеса с помощью метода substring

JS
Скопировать код
let sampleScript = "CurtainCall";
let grandFinale = sampleScript.substring(sampleScript.length – 4); // "Call"

На грани... Но все под контролем!

JS
Скопировать код
let understudy = "Extra";
let roleLength = 10; // Нет причины для беспокойства!
// Положитесь на надежный .slice():
let perhapsMoreThanExtra = understudy.slice(-roleLength); // "Extra"

Неожиданный гость

JS
Скопировать код
let oneManShow = "Monologue";
let surpriseCharacter = oneManShow.substr(6); // "ogue" (Кто этот 'ogue'?)

Полезные материалы

  1. String.prototype.slice() – JavaScript | MDN — подробное руководство по использованию slice().
  2. javascript – How can I get last characters of a string – Stack Overflow — разные подходы и решения для получения последних символов из строки.
  3. String.prototype.substring() – JavaScript | MDN — всё, что стоит знать о методе substring().
  4. JavaScript String substr() Method – W3Schools — полезные уроки по использованию substr().
  5. Strings – JavaScript.info — обширное руководство по строкам в JavaScript.
  6. JavaScript String slice() Method – W3Schools — подбор примеров использования slice().
  7. ECMAScript® 2021 Language Specification — детальное описание свойств и методов прототипа строки в ECMAScript® 2021.