From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../global_objects/string/substr/index.html | 116 +++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 files/ru/web/javascript/reference/global_objects/string/substr/index.html (limited to 'files/ru/web/javascript/reference/global_objects/string/substr') diff --git a/files/ru/web/javascript/reference/global_objects/string/substr/index.html b/files/ru/web/javascript/reference/global_objects/string/substr/index.html new file mode 100644 index 0000000000..cfc0191ea7 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/string/substr/index.html @@ -0,0 +1,116 @@ +--- +title: String.prototype.substr() +slug: Web/JavaScript/Reference/Global_Objects/String/substr +tags: + - Deprecated + - JavaScript + - Method + - Prototype + - Reference + - String +translation_of: Web/JavaScript/Reference/Global_Objects/String/substr +--- +
+
{{JSRef}}
+ +
+ +
Внимание: так как String.prototype.substr(…) не полностью упразднена (а лишь "удалена из стандартов по вебу"), она считается унаследованной функцией, использование которой лучше избегать там, где это возможно. Она не является частью ядра языка JavaScript и может быть удалена в будущем. Если есть возможность, используйте метод substring().
+ +

Метод substr() возвращает указанное количество символов из строки, начиная с указанной позиции.

+{{EmbedInteractiveExample("pages/js/string-substr.html")}} + + + +

Синтаксис

+ +
str.substr(start[, length])
+ +

Параметры

+ +
+
start
+
Позиция, с которой начинать извлекать символы. Если передано отрицательное число, она трактуется как strLength - start, где strLength равна длине строки (например, если параметр start равен -3, то он трактуется как strLength - 3.)
+
length
+
Необязательный параметр. Количество извлекаемых символов.
+
+ +

Возвращаемое значение

+ +

Новая строка, содержащая часть исходной, обрезанной по переданным параметрам.

+ +

Описание

+ +

Параметр start является индексом символа. Индекс первого символа равен 0, а последнего символа — на один меньше длины строки. Метод substr() начинает извлекать символы начиная с позиции start и собирая length символов (если он не достигнет раньше конца строки, в этом случае будет возвращено меньшее количество символов).

+ +

Если параметр start является положительным и он больше, либо равен длине строки, метод substr() вернёт пустую строку.

+ +

Если параметр start является отрицательным, метод substr() использует его как индекс символа, начиная с конца строки. Если параметр start отрицателен и по модулю больше длины строки, метод substr() будет использовать 0 в качестве начального индекса. Обратите внимание: описанная обработка отрицательных значений аргумента start не поддерживается JScript от Microsoft.

+ +

Если параметр length равен нулю или отрицателен, метод substr() вернёт пустую строку. Если параметр length опущен, метод substr() извлечёт все символы до конца строки.

+ +

Примеры

+ +

Использование метода substr()

+ +
var str = 'абвгдеёжзи';
+
+console.log('(1, 2): '   + str.substr(1, 2));   // '(1, 2): бв'
+console.log('(-3, 2): '  + str.substr(-3, 2));  // '(-3, 2): жз'
+console.log('(-3): '     + str.substr(-3));     // '(-3): жзи'
+console.log('(1): '      + str.substr(1));      // '(1): бвгдеёжзи'
+console.log('(-20, 2): ' + str.substr(-20, 2)); // '(-20, 2): аб'
+console.log('(20, 2): '  + str.substr(20, 2));  // '(20, 2): '
+
+ +

Полифилл

+ +

JScript от Microsoft не поддерживает отрицательные значения для начального индекса. Если вы хотите использовать эту возможность, вы можете использовать следующий код совместимости для обхода этой ошибки:

+ +
// only run when the substr() function is broken
+if ('ab'.substr(-1) != 'b') {
+  /**
+   *  Get the substring of a string
+   *  @param  {integer}  start   where to start the substring
+   *  @param  {integer}  length  how many characters to return
+   *  @return {string}
+   */
+  String.prototype.substr = function(substr) {
+    return function(start, length) {
+      // call the original method
+      return substr.call(this,
+      	// did we get a negative start, calculate how much it is from the beginning of the string
+        // adjust the start parameter for negative value
+        start < 0 ? this.length + start : start,
+        length)
+    }
+  }(String.prototype.substr);
+}
+
+ +

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

+ + + + + + + + + + +
Спецификация
{{SpecName('ESDraft', '#sec-string.prototype.substr', 'String.prototype.substr')}}
+ +

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

+ + + +

{{Compat("javascript.builtins.String.substr")}}

+ +

Смотрите также

+ + +
-- cgit v1.2.3-54-g00ecf