Извлечение последних символов из строки в JavaScript
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Для того чтобы получить последние n
символов из строки, примените метод .slice(-n)
:
let str = 'ExampleString';
let lastN = str.slice(-5); // вернет 'tring'
Если n
больше длины строки, метод вернет целую строку — без неожиданных сюрпризов!
Извлечение определенных символов с конца строки
Для извлечения конкретного количества символов с конца строки используйте метод .slice()
с отрицательными индексами. Необходимы ли вам последние пять символов? Это совсем просто:
let lastFive = str.slice(-5); // В результате будет 'tring'
Если n
больше длины строки, метод .slice(-n)
спокойно возвращают текущую строку.
Позвольте символам увидеть свет рампы
Иногда требуется извлечь символы, расположенные после определенного символа-разделителя, например, нижнего подчеркивания. В этом случае нам помогут .split().pop()
:
let divaString = 'underscore_centric';
let lastAct = divaString.split('_').pop(); // на получаем 'centric'
Другие методы на сцене
Если вам более удобно работать с начальной позицией для извлечения, используйте .substring()
вместо .slice()
. Метод .substr()
, который позволял задавать количество извлекаемых символов, стал устаревшим:
// Пример с .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()
интерпретирует его как количество извлекаемых символов:
// substring: указываем начальный и конечный индексы
let subStrExample = str.substring(2, 5); // "ample"
// substr: указываем начальный индекс и длину
let substrExample = str.substr(2, 5); // "ampleS" (внезапный S!)
Экскурс по 'стране строк'
Каждый метод извлечения символов из строки – это уникальное представление со своими условностями и особенностями.
Грандиозное открытие занавеса с помощью метода substring
let sampleScript = "CurtainCall";
let grandFinale = sampleScript.substring(sampleScript.length – 4); // "Call"
На грани... Но все под контролем!
let understudy = "Extra";
let roleLength = 10; // Нет причины для беспокойства!
// Положитесь на надежный .slice():
let perhapsMoreThanExtra = understudy.slice(-roleLength); // "Extra"
Неожиданный гость
let oneManShow = "Monologue";
let surpriseCharacter = oneManShow.substr(6); // "ogue" (Кто этот 'ogue'?)
Полезные материалы
- String.prototype.slice() – JavaScript | MDN — подробное руководство по использованию slice().
- javascript – How can I get last characters of a string – Stack Overflow — разные подходы и решения для получения последних символов из строки.
- String.prototype.substring() – JavaScript | MDN — всё, что стоит знать о методе substring().
- JavaScript String substr() Method – W3Schools — полезные уроки по использованию substr().
- Strings – JavaScript.info — обширное руководство по строкам в JavaScript.
- JavaScript String slice() Method – W3Schools — подбор примеров использования slice().
- ECMAScript® 2021 Language Specification — детальное описание свойств и методов прототипа строки в ECMAScript® 2021.