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

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

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

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

substr() — устаревший метод из Annex B. Для нового кода используйте slice() или substring(), учитывая, что их второй аргумент — конечный индекс, а не количество кодовых единиц.

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

Устарела

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

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

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

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

JavaScript синтаксис

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

// копирование символов происходит с заданного индекса в количестве, указанном в параметре length
string.substr( start, length );

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

ECMAScript: String.prototype.substr()

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

String: справочные сведения
Параметр Описание
start Индекс с которого производится копирование символов из исходной строки. Необязательный параметр, по умолчанию 0.
Если в качестве значения индекса указывается отрицательное число, то индекс с которого будет произведено копирование символов рассчитывается как длина строки + start. Если начальный индекс больше или равен длине строки, то метод substr() вернет пустую строку. Значение NaN (англ. Not-a-Number, "не число") расценивается равным нулю.
length Количество символов, которые будут скопированы из исходной строки. Необязательный параметр. Если параметр length не используется, или равен undefined, то метод substr() производит копирование символов до конца строки. Если length является отрицательным числом, то оно считается равным 0. Значение NaN (англ. Not-a-Number, "не число") расценивается равным нулю.

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

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

Начальная позиция и количество

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

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 str = 'Hello world' // инициализируем строковую переменную

console.log(str.substr(0)) // переменная содержит значение "Hello world"
console.log(str.substr(6)) // переменная содержит значение "world"
console.log(str.substr(7, 2)) // переменная содержит значение "or"
console.log(str.substr(-5)) // переменная содержит значение "world"
console.log(str.substr(-4, 2)) // переменная содержит значение "or"
console.log(str.substr(100)) // переменная содержит значение "" (пустая строка)
console.log(str.substr(NaN)) // переменная содержит значение "Hello world"