MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

String.prototype.substr()

This translation is incomplete. Please help translate this article from English.

Metoda substr() va intoarce caracterele dintr-un sir incepand cu locatia specificata trecand prin numarul specificat de caractere.

Sintaxa

str.substr(inceput [, lungimea])

Parametrii

inceput
Locatia de unde va incepe extragerea caracterelor. Daca un numar negativ va fi alocat, se va comporta ca strLength + inceput unde strLength este lungimea sirului(de exemplu, daca inceput este -3 se va comporta ca  strLength - 3)
lungimea
Optional. Numarul de caractere pentru a fi extrase.

Valuarea de retur

Un sir nou ce contine sectiunea extrasa a unui oarecare sir. Daca lungimea este 0 sau un numar negativ este dat, un sir gol va fi restituit.

Descriere

inceput este un indice de caracter. Indicele primului caracter este 0 si indicele ultimului caracter este 1 mai putin decat lungimea sirului. substr() incepe extragerea caracterelor la inceput si colecteaza lungimea caracterelor(cu exceptia cazului cand ajunge la sfarsitul primului sir, in acest caz va returna mai putine).

Daca inceput este pozitiv sau este mai mare sau egal cu lungimea unui sir, substr() va returna un sir gol

Daca inceput este negativ, substr() il va folosi ca si index de caracter de la sfarsitul sirului. Daca inceput este negativ si abs(inceput) este mai mare decat lungimea sirului, substr() va folosi 0 ca si indice de inceput. Nota: descrierea manipularii valorilor negative al argumentului inceput nu este suportata de Microsoft JScript

Daca lungimea este 0 sau negativ, substr() va returna un sir gol. Daca lungimea este omisa, substr() va extrage caracterele de la sfarsitul sirului.

Exemple

folosind substr()

var str = 'abcdefghij';

console.log('(1, 2): '   + str.substr(1, 2));   // '(1, 2): bc'
console.log('(-3, 2): '  + str.substr(-3, 2));  // '(-3, 2): hi'
console.log('(-3): '     + str.substr(-3));     // '(-3): hij'
console.log('(1): '      + str.substr(1));      // '(1): bcdefghij'
console.log('(-20, 2): ' + str.substr(-20, 2)); // '(-20, 2): ab'
console.log('(20, 2): '  + str.substr(20, 2));  // '(20, 2): '

Polyfill

Microsoft's JScript nu suporta valorile negative pentru indicele de inceput. Daca doresti sa te folosesti de acesta trasatura poti folosi urmatorul acest cod compatibil sa rezolvi acest bug.

// ruleaza doar cand functia substr()  nu functioneaza
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);
}

Specificatii

Specificatii Status Comentarii
ECMAScript 3rd Edition (ECMA-262) Standard Definit in (informativ) Compatibility Annex B. Implemented in JavaScript 1.0.
ECMAScript 5.1 (ECMA-262)
The definition of 'String.prototype.substr' in that specification.
Standard Definit in (informativ) Compatibility Annex B
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'String.prototype.substr' in that specification.
Standard Definit in (normativ) Annex B for Additional ECMAScript Features for Web Browsers
ECMAScript 2017 Draft (ECMA-262)
The definition of 'String.prototype.substr' in that specification.
Draft Definit in (normativ) Annex B for Additional ECMAScript Features for Web Browsers

Compatibilitate browser

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suport de basa (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suport de baza (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Vezi si

Document Tags and Contributors

 Contributors to this page: Mercur
 Last updated by: Mercur,