JavaScript метод String.prototype.substring()

Определение и применение

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

Индексы и длины здесь измеряются в кодовых единицах UTF-16. Например, "😀".length равно 2; разрезание по индексу может разделить суррогатную пару. Исходная строка не изменяется.

Поддержка браузерами

Спецификация: ecma262

Поддерживается во всех основных браузерах с 2015 года.

Показать браузеры
Совместимостьjavascript.builtins.String.substring
ВозможностьКомпьютерыМобильные
ChromeEdgeFirefoxOperaSafariChrome AndroidFirefox for AndroidOpera AndroidSafari on iOSSamsung BrowserWebView AndroidWebView on iOS
substring✓1✓12✓1✓3✓1✓18✓4✓10.1✓1✓1.0✓4.4✓1

поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31

JavaScript синтаксис

JavaScript
// извлечение символов из строки от определенного индекса до конца строки
string.substring( start );

// извлечение символов из строки между двумя заданными индексами
string.substring( start, end);

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

ECMAScript: String.prototype.substring()

Значения параметров

String: справочные сведения
Параметр Описание
start Целое число, которое определяет индекс с которого производится копирование подстроки из исходной строки. Обязательный параметр.
Если в качестве значения индекса указывается отрицательное число или значение NaN (англ. Not-a-Number, "не число"), то это значение расценивается равным нулю. Если один из параметров больше или равен длине строки, то значение расценивается равным длине строки. Если параметр start равен параметру end, то метод substring() вернет пустую строку. Если параметр start больше параметра end, то метод поменяет их значения местами.
end Целое число, которое определяет индекс до которого происходит копирование подстроки. Подстрока включает символы указанные до указанного индекса (символ по указанному индексу не включается). Необязательный параметр.
Если параметр end не используется или равен undefined, то метод substring() производит копирование символов до конца строки. Если в качестве значения индекса указывается отрицательное число или значение NaN (англ. Not-a-Number, "не число"), то это значение расценивается равным нулю, если в этом случае значение параметра start окажется больше параметра end, то метод поменяет их местами.

Примеры, попробуйте сами

В примере «Границы и перестановка индексов» показан результат вызова метода.

Границы и перестановка индексов

Измените исходную строку или аргумент метода и сравните результат после запуска.

index.html
HTML
<!doctype html>
<html lang="ru">
  <head>
    <meta charset="UTF-8" />
    <title>Границы и перестановка индексов</title>
  </head>
  <body>
    <p>Результат выполнения выводится в консоль.</p>
  </body>
</html>
main.js
JavaScript
var string = 'Hello world' // инициализируем строковую переменную

console.log(string.substring(0)) // возвращаемое значение "Hello world"
console.log(string.substring(6)) // возвращаемое значение "world"
console.log(string.substring(10)) // возвращаемое значение "d"
console.log(string.substring(-10)) // возвращаемое значение "Hello world"
console.log(string.substring(15)) // возвращаемое значение ""
console.log(string.substring(0, 0)) // возвращаемое значение ""
console.log(string.substring(1, 4)) // возвращаемое значение "ell"
console.log(string.substring(4, 1)) // возвращаемое значение "ell" (значения параметров меняются местами)
console.log(string.substring(0, 4)) // возвращаемое значение "Hell"
console.log(string.substring(4, NaN)) // возвращаемое значение "Hell" (NaN расценивается как 0 и значения параметров меняются местами)

console.log('abcd'.substring(1, undefined)) // bcd