Substring: примеры (JAVASCRIPT)
substring(start: number, end?: number): stringОсновы метода substring
Метод substring() возвращает часть строки между начальным и конечным индексами или до конца строки. Он применяется для извлечения подстрок из текстовых данных.
Синтаксис: str.substring(indexStart[, indexEnd])
- indexStart - целое число от 0 до длины строки, указывающее начало извлечения.
- indexEnd (необязательный) - целое число, указывающее конец извлечения (символ с этим индексом не включается).
Особенности работы:
- Если indexEnd опущен, извлечение идет до конца строки.
- Если аргументы равны, возвращается пустая строка.
- При передаче значения больше длины строки, оно преобразуется в длину строки.
- Отрицательные значения, NaN трактуются как 0.
- Если indexStart > indexEnd, аргументы меняются местами.
Базовые примеры использования
Извлечение подстроки с указанием начала:
let str = "JavaScript";
console.log(str.substring(4));Script
Извлечение с указанием начала и конца:
let str = "JavaScript";
console.log(str.substring(0, 4));Java
Обработка отрицательных аргументов:
let str = "JavaScript";
console.log(str.substring(-3, 4));Java
Аргументы в обратном порядке:
let str = "JavaScript";
console.log(str.substring(6, 2));vaSc
Альтернативные методы в JavaScript
slice() - работает аналогично, но поддерживает отрицательные индексы (отсчет от конца строки).
let str = "JavaScript";
console.log(str.slice(-6)); // "Script"substr() (устаревший) - второй параметр указывает длину извлекаемой подстроки.
let str = "JavaScript";
console.log(str.substr(4, 3)); // "Scr"Рекомендации: substring удобен при работе с положительными индексами, slice - при необходимости отрицательной индексации.
Распространенные ошибки
Путаница с индексами конца:
let str = "JavaScript";
console.log(str.substring(0, 10)); // "JavaScript"
console.log(str.substring(0, 11)); // "JavaScript"Ожидание поддержки отрицательных индексов:
let str = "JavaScript";
console.log(str.substring(-2)); // "JavaScript" (не "pt")Неправильное понимание замены аргументов местами:
let str = "JavaScript";
console.log(str.substring(6, 2) === str.substring(2, 6)); // trueИзменения в современных версиях
Метод substring не претерпел значительных изменений в последних версиях ECMAScript. Основное внимание уделяется поддержанию обратной совместимости.
В ES2015+ метод остается стабильным, тогда как метод substr считается устаревшим и его использование не рекомендуется.
Расширенные примеры применения
Извлечение домена из email:
let email = "user@example.com";
let atIndex = email.indexOf('@');
let domain = email.substring(atIndex + 1);
console.log(domain); // example.comОбработка пользовательского ввода с гарантией длины:
function truncateText(text, maxLength) {
return text.substring(0, maxLength) + (text.length > maxLength ? '...' : '');
}
console.log(truncateText('Длинный текст', 7)); // Длинный...Извлечение нескольких подстрок из строки:
let data = "id:123,name:John,age:25";
let id = data.substring(3, 6);
let name = data.substring(12, 16);
console.log(id, name); // 123 JohnБезопасное получение символов по индексу:
let str = "JavaScript";
let char = str.substring(2, 3);
console.log(char); // v (безопаснее str[2])Очистка строки от лишних пробелов в начале и конце:
function trimCustom(str) {
let start = 0, end = str.length;
while (str.substring(start, start + 1) === ' ') start++;
while (str.substring(end - 1, end) === ' ') end--;
return str.substring(start, end);
}
console.log(trimCustom(' текст ')); // текстАналоги в других языках программирования
Python - срезы строк с аналогичным синтаксисом:
text = "JavaScript"
print(text[0:4]) # JavaPHP - функция substr() с поддержкой отрицательной длины:
$str = "JavaScript";
echo substr($str, 4, 3); // ScrMySQL - функция SUBSTRING() с синтаксисом отличным от JS:
SELECT SUBSTRING('JavaScript', 5, 3); -- ScriC# - метод Substring() с обязательной проверкой выхода за границы:
string str = "JavaScript";
Console.WriteLine(str.Substring(4, 3)); // Scr