String.prototype.substring()

Сводка

Метод substring() возвращает подстроку строки между двумя индексами, или от одного индекса и до конца строки.

Синтаксис

str.substring(indexA[, indexB])

Параметры

indexA
Целое число от 0 до длины строки, определяющее смещение в строке первого символа, который будет включён в результирующую подстроку.
indexB
Необязательный параметр. Целое число от 0 до длины строки, определяющее смещение в строке первого символа, который не будет включён в результирующую подстроку.

Описание

Метод substring() извлекает символы, начиная с индекса indexA до, но не включая, индекс indexB. В частности:

  • Если аргумент indexA равен аргументу indexB, метод substring() вернёт пустую строку.
  • Если аргумент indexB опущен, метод substring() извлечёт символы до конца строки.
  • Если любой из аргументов меньше, либо равен нулю или равен NaN, он будет трактоваться как равный 0.
  • Если любой из аргументов больше, чем stringName.length, он будет трактоваться как равный stringName.length.

Если аргумент indexA будет больше аргумента indexB, то метод substring() сработает так, как если бы аргументы были поменяны местами; например, str.substring(1, 0) == str.substring(0, 1).

Примеры

Пример: использование метода substring()

В следующем примере метод substring() используется для отображения символов из строки 'Mozilla':

var anyString = 'Mozilla';

// Отобразит 'Moz'
console.log(anyString.substring(0, 3));
console.log(anyString.substring(3, 0));

// Отобразит 'lla'
console.log(anyString.substring(4, 7));
console.log(anyString.substring(7, 4));

// Отобразит 'Mozill'
console.log(anyString.substring(0, 6));

// Отобразит 'Mozilla'
console.log(anyString.substring(0, 7));
console.log(anyString.substring(0, 10));

Пример: использование метода substring() вместе со свойством length

Следующий пример использует метод substring() и свойство length для извлечения последних символов из строки. Этот метод может оказаться легче для запоминания, особенно если учесть, что вам не нужно знать начальный и конечный индексы, как это было в примере выше.

// Отобразит 'illa' - последние 4 символа
var anyString = 'Mozilla';
var anyString4 = anyString.substring(anyString.length - 4);
console.log(anyString4);

// Отобразит 'zilla' - последние 5 символов
var anyString = 'Mozilla';
var anyString5 = anyString.substring(anyString.length - 5);
console.log(anyString5);

Пример: замена подстроки в строке

Следующий пример демонстрирует замену подстроки в строке. Он заменит как отдельные символы, так и целые подстроки. Вызов функции в конце примера изменит строку 'Дивный новый мир' на строку 'Дивный новый веб'.

// Заменяет oldS на newS в строке fullS
function replaceString(oldS, newS, fullS) {
  for (var i = 0; i < fullS.length; ++i) {
    if (fullS.substring(i, i + oldS.length) == oldS) {
      fullS = fullS.substring(0, i) + newS + fullS.substring(i + oldS.length, fullS.length);
    }
  }
  return fullS;
}

replaceString('мир', 'веб', 'Дивный новый мир');

Обратите внимание, что функция может скатиться в бексонечный цикл, если строка oldS сама является подстрокой для newS — например, если вы попытаетесь заменить слово «мир» на слово «другоймир». Лучше использоваться следующий метод для замены строк:

function replaceString(oldS, newS, fullS) {
  return fullS.split(oldS).join(newS);
}

Код выше следует рассматривать всего лишь как пример работы с подстроками. Если вам нужно заменить подстроки, скорее всего вы захотите использовать метод String.prototype.replace().

Спецификации

Спецификация Статус Комментарии
ECMAScript 1-е издание. Стандарт Реализована в JavaScript 1.0.
ECMAScript 5.1 (ECMA-262)
Определение 'String.prototype.substring' в этой спецификации.
Стандарт  
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'String.prototype.substring' в этой спецификации.
Стандарт  

Совместимость с браузерами

Возможность Chrome Firefox (Gecko) Internet Explorer Opera Safari
Базовая поддержка (Да) (Да) (Да) (Да) (Да)
Возможность Android Chrome для Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка (Да) (Да) (Да) (Да) (Да) (Да)

Смотрите также

Метки документа и участники

 Внесли вклад в эту страницу: Mingun
 Обновлялась последний раз: Mingun,