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
onstrLength
és la llargària de al cadena (per exemple, sicomençament
és -3 se'l tracta comstrLength - 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) |