String.prototype.substr(…)
не є строго не рекомендованим (як "прибраний з веб-стандартів"), він вважається застарілим та не бажаний для використання, коли це можливо. Він не є частиною ядра мови JavaScript та може бути прибраний в майбутньому. За можливості, використовуйте замість нього метод substring()
.Метод substr()
повертає частину рядка, що починається з вказаного індекса та продовжується вказану кількість символів.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Синтаксис
str.substr(start[, length])
Параметри
start
- Індекс першого символу, який треба включити у повернений рядок.
length
- Необов'язковий. Кількість символів, яку треба повернути.
Значення, що повертається
Новий рядок, що містить вказану частину наданого рядка.
Опис
Метод substr()
вирізає length
символів з рядка string
, рахуючи з початкового індексу start
.
Якщо start
є додатним числом, індекс рахується з початку рядка. Його значення обмежується значенням str.length
.
Якщо start
є від'ємним числом, індекс рахується з кінця рядка. Його значення обмежується значенням -str.length
.
Заувага: У Microsoft JScript від'ємне значення аргументу start
не вважається посиланням на кінець рядка.
Якщо аргумент length
пропущений, substr()
повертає символи до кінця рядка.
Якщо length
дорівнює undefined
, substr()
повертає символи до кінця рядка.
Якщо length
є від'ємним числом, він вважається рівним 0.
Для обох, start
та length
, NaN вважається рівним 0.
Приклади
Використання substr()
var aString = 'Mozilla';
console.log(aString.substr(0, 1)); // 'M'
console.log(aString.substr(1, 0)); // ''
console.log(aString.substr(-1, 1)); // 'a'
console.log(aString.substr(1, -1)); // ''
console.log(aString.substr(-3)); // 'lla'
console.log(aString.substr(1)); // 'ozilla'
console.log(aString.substr(-20, 2)); // 'Mo'
console.log(aString.substr(20, 2)); // ''
Поліфіл
JScript у Microsoft не підтримує від'ємні значення початкового індекса. Щоб використовувати цю функціональність у JScript, ви можете скористатись наступним кодом:
// запускайте тільки якщо функція substr() не працює
if ('ab'.substr(-1) != 'b') {
/**
* Отримати підрядок з рядка
* @param {integer} start де почати підрядок
* @param {integer} length скільки символів повертати
* @return {string}
*/
String.prototype.substr = function(substr) {
return function(start, length) {
// викликаємо початковий метод
return substr.call(this,
// якщо ми отримали від'ємний start, порахувати, скільки це від початку рядка
// відкоригувати параметр start для від'ємного значення
start < 0 ? this.length + start : start,
length)
}
}(String.prototype.substr);
}
Специфікації
Специфікація |
---|
ECMAScript (ECMA-262) The definition of 'String.prototype.substr' in that specification. |
Сумісність з веб-переглядачами
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.