String.prototype.substr()
Baseline Ограниченная доступность
Эта функция не является Baseline, поскольку она не работает в некоторых из наиболее широко используемых браузеров.
Устарело: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут по-прежнему поддерживать ее, она уже могла быть удалена из соответствующих веб-стандартов, может быть в процессе удаления или может поддерживаться только для целей совместимости. Избегайте ее использования и, по возможности, обновите существующий код; см. таблицу совместимости внизу этой страницы, чтобы принять решение. Имейте в виду, что эта функция может перестать работать в любой момент.
Метод substr() объекта String возвращает часть этой строки, начиная с указанного индекса и извлекая указанное количество символов после него.
Примечание: substr() не является частью основной спецификации ECMAScript — он определен в Приложении B: Дополнительные возможности ECMAScript для веб-браузеров, которое является нормативно необязательным для сред выполнения, отличных от браузеров. Поэтому рекомендуется использовать стандартные методы String.prototype.substring() и String.prototype.slice() вместо них, чтобы сделать код максимально совместимым между платформами. На странице String.prototype.substring() приведены некоторые сравнения между тремя методами.
Попробуйте
const str = "Mozilla"; console.log(str.substr(1, 2)); // Expected output: "oz" console.log(str.substr(2)); // Expected output: "zilla"
Синтаксис
substr(start) substr(start, length)
Параметры
-
start - Индекс первого символа, который будет включен в возвращаемую подстроку.
-
lengthНеобязательно - Количество извлекаемых символов.
Возвращаемое значение
Новая строка, содержащая указанную часть данной строки.
Описание
Метод substr() строки извлекает length символов из строки, отсчитывая от start индекса.
- Если
start >= str.length, возвращается пустая строка. - Если
start < 0, индекс начинает отсчет с конца строки. Более формально, в этом случае подстрока начинается сmax(start + str.length, 0). - Если
startопущен илиundefined, он считается равным0. - Если
lengthопущен илиundefined, или еслиstart + length >= str.length,substr()извлекает символы до конца строки. - Если
length < 0, возвращается пустая строка. - Как для
start, так и дляlength,NaNсчитается равным0.
Хотя вам рекомендуется избегать использования substr(), нет простого способа перенести substr() либо на slice(), либо на substring() в устаревшем коде без фактического написания полифилла для substr(). Например, str.substr(a, l), str.slice(a, a + l) и str.substring(a, a + l) имеют разные результаты, когда str = "01234", a = 1, l = -2 — substr() возвращает пустую строку, slice() возвращает "123", в то время как substring() возвращает "0". Фактический путь рефакторинга зависит от знания диапазона a и l.
Примеры
Использование substr()
const string = "Mozilla"; console.log(string.substr(0, 1)); // 'M' console.log(string.substr(1, 0)); // '' console.log(string.substr(-1, 1)); // 'a' console.log(string.substr(1, -1)); // '' console.log(string.substr(-3)); // 'lla' console.log(string.substr(1)); // 'ozilla' console.log(string.substr(-20, 2)); // 'Mo' console.log(string.substr(20, 2)); // ''
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
substr |
1 |
12 |
1 |
4 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
См. также
- Polyfill of
String.prototype.substrincore-js - es-shims polyfill of
String.prototype.substr String.prototype.slice()String.prototype.substring()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr