Substring: примеры (JAVASCRIPT)

Использование метода 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:

Пример javascript
let email = "user@example.com";
let atIndex = email.indexOf('@');
let domain = email.substring(atIndex + 1);
console.log(domain); // example.com

Обработка пользовательского ввода с гарантией длины:

Пример javascript
function truncateText(text, maxLength) {
    return text.substring(0, maxLength) + (text.length > maxLength ? '...' : '');
}
console.log(truncateText('Длинный текст', 7)); // Длинный...

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

Пример javascript
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

Безопасное получение символов по индексу:

Пример javascript
let str = "JavaScript";
let char = str.substring(2, 3);
console.log(char); // v (безопаснее str[2])

Очистка строки от лишних пробелов в начале и конце:

Пример javascript
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])  # Java

PHP - функция substr() с поддержкой отрицательной длины:

$str = "JavaScript";
echo substr($str, 4, 3);  // Scr

MySQL - функция SUBSTRING() с синтаксисом отличным от JS:

SELECT SUBSTRING('JavaScript', 5, 3); -- Scri

C# - метод Substring() с обязательной проверкой выхода за границы:

string str = "JavaScript";
Console.WriteLine(str.Substring(4, 3)); // Scr

JS substring function comments

En
Substring Returns a subset of a string between one index and another, or through the end of the string