Spec-Zone.ru › JavaScript

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)); // ''

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

Спецификация
ECMAScript® 2027 Language Specification
# sec-string.prototype.substr

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

Настольные компьютеры Мобильные устройства Сервер
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.substr in core-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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API