String.prototype.substr()

This article needs an editorial review. How you can help.

El mètode substr() retorna els caràcters d'una cadena començant per la posició especificada fins al nombre especificat de caràcters.

Sintaxi

str.substr(començament[, llargària])

Paràmetres

començament
Lloc des d'on es comença a extraure els caràcters. Si es dóna un nombre negatiu, se'l tracta com strLength + començament on strLength és la llargària de al cadena (per exemple, si començament és -3 se'l tracta com strLength - 3.)
llargària
Opcional. El nombre de caràcter per extraure.

Descripció

començament is a character index. L'índex del primer caràcter és 0, i l'índex de l'últim caràcter és 1 menys que la llargària de la cadena. substr() comença extraient caràcters a començament i recull els caràcters llargària (llevat que primer s'arribi al final de la cadena, en aquest cas en retornaria menys).

Si començament és positivu i més gran o igual que la llargària de la cadena, substr() retornarà una cadena buida.

SI començament és negatiu, substr() l'utilitza com un índex de caràcter des del final de la cadena. Si començament és negatiu i  abs(comença,ent) és més gran que la llargària de la cadena, substr() utilitza 0 com a índex d'inici. Nota: El maneig de valors negatius de l'argument començament no està suportat per Microsoft JScript.

Si llargària és 0 o negatiu, substr() retorna una cadena buida. Si llargària s'omet, substr() extreu els caràcter fins al final de la cadena.

Exemples

Utilitzar 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 no suporta valors negatius per l'índex d'inici. Si desitjes utilitzar aquesta característica, pots utilitzar el codi de compatibilitat següent per evitar aquest error:

// només s'executa quan la funció substr() està trencada
if ('ab'.substr(-1) != 'b') {
  /**
   *  Obtenir la subcadena d'una cadena
   *  @param  {integer}  start   on comença la subcadena
   *  @param  {integer}  length  quants caràcters s'han de retornar
   *  @return {string}
   */
  String.prototype.substr = function(substr) {
    return function(start, length) {
      // crida el mètode original
      return substr.call(this,
      	// Si ens dóna un començament negatiu, calcular quant es des de l'inici de la cadena
        // adjustar el paràmetre start per valor negatiu
        start < 0 ? this.length + start : start,
        length)
    }
  }(String.prototype.substr);
}

Especificacions

Especificació Estat Comentaris
ECMAScript 3rd Edition (ECMA-262) Standard Definit en l'Annex B de Compatibilitat (informative). Implementat en JavaScript 1.0.
ECMAScript 5.1 (ECMA-262)
The definition of 'String.prototype.substr' in that specification.
Standard Definit en l'Annex B de Compatibilitat (informative)
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'String.prototype.substr' in that specification.
Standard Definit en l'Annex B (normative) per Característiques addiccionals d'ECMAScript per Navegadors Web

Compatibilitat amb navegadors

Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suport bàsic (Yes) (Yes) (Yes) (Yes) (Yes)
Característica Android Chrome per Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suport bàsic (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Vegeu també

Document Tags and Contributors

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