--- title: String.prototype.substr() slug: Web/JavaScript/Reference/Global_Objects/String/substr translation_of: Web/JavaScript/Reference/Global_Objects/String/substr original_slug: Web/JavaScript/Referencia/Objectes_globals/String/substr ---
El mètode substr() retorna els caràcters d'una cadena començant per la posició especificada fins al nombre especificat de caràcters.
str.substr(començament[, llargària])
començamentstrLength + 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àriacomenç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.
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): '
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);
}
| Especificació | Estat | Comentaris |
|---|---|---|
| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Definit en l'Annex B de Compatibilitat (informative). Implementat en JavaScript 1.0. |
| {{SpecName('ES5.1', '#sec-B.2.3', 'String.prototype.substr')}} | {{Spec2('ES5.1')}} | Definit en l'Annex B de Compatibilitat (informative) |
| {{SpecName('ES6', '#sec-string.prototype.substr', 'String.prototype.substr')}} | {{Spec2('ES6')}} | Definit en l'Annex B (normative) per Característiques addiccionals d'ECMAScript per Navegadors Web |
| Característica | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Suport bàsic | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
| Característica | Android | Chrome per Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Suport bàsic | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |