1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
---
title: String.prototype.substr()
slug: Web/JavaScript/Referencia/Objectes_globals/String/substr
translation_of: Web/JavaScript/Reference/Global_Objects/String/substr
---
<div>{{JSRef}}</div>
<p>El mètode <strong><code>substr()</code></strong> retorna els caràcters d'una cadena començant per la posició especificada fins al nombre especificat de caràcters.</p>
<h2 id="Sintaxi">Sintaxi</h2>
<pre class="syntaxbox"><code><var>str</var>.substr(<var>començament</var>[, <var>llargària</var>])</code></pre>
<h3 id="Paràmetres">Paràmetres</h3>
<dl>
<dt><code>començament</code></dt>
<dd>Lloc des d'on es comença a extraure els caràcters. Si es dóna un nombre negatiu, se'l tracta com <code>strLength + començament</code> on <code>strLength</code> és la llargària de al cadena (per exemple, si <code>començament</code> és -3 se'l tracta com <code>strLength - 3</code>.)</dd>
<dt><code>llargària</code></dt>
<dd>Opcional. El nombre de caràcter per extraure.</dd>
</dl>
<h2 id="Descripció">Descripció</h2>
<p><code>començament</code> 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. <code>substr()</code> comença extraient caràcters a <code>començament</code> i recull els caràcters <code>llargària</code> (llevat que primer s'arribi al final de la cadena, en aquest cas en retornaria menys).</p>
<p>Si <code>començament</code> és positivu i més gran o igual que la llargària de la cadena, <code>substr()</code> retornarà una cadena buida.</p>
<p>SI <code>començament</code> és negatiu, <code>substr()</code> l'utilitza com un índex de caràcter des del final de la cadena. Si <code>començament</code> és negatiu i <code>abs(comença,ent)</code> és més gran que la llargària de la cadena, <code>substr()</code> utilitza 0 com a índex d'inici. Nota: El maneig de valors negatius de l'argument <code>començament</code> no està suportat per Microsoft JScript.</p>
<p>Si <code>llargària</code> és 0 o negatiu, <code>substr()</code> retorna una cadena buida. Si <code>llargària</code> s'omet, <code>substr()</code> extreu els caràcter fins al final de la cadena.</p>
<h2 id="Exemples">Exemples</h2>
<h3 id="Utilitzar_substr()">Utilitzar <code>substr()</code></h3>
<pre class="brush: js">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): '
</pre>
<h2 id="Polyfill">Polyfill</h2>
<p>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:</p>
<pre class="brush: js">// 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);
}
</pre>
<h2 id="Especificacions">Especificacions</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Especificació</th>
<th scope="col">Estat</th>
<th scope="col">Comentaris</th>
</tr>
<tr>
<td>{{SpecName('ES3')}}</td>
<td>{{Spec2('ES3')}}</td>
<td>Definit en l'Annex B de Compatibilitat (informative). Implementat en JavaScript 1.0.</td>
</tr>
<tr>
<td>{{SpecName('ES5.1', '#sec-B.2.3', 'String.prototype.substr')}}</td>
<td>{{Spec2('ES5.1')}}</td>
<td>Definit en l'Annex B de Compatibilitat (informative)</td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-string.prototype.substr', 'String.prototype.substr')}}</td>
<td>{{Spec2('ES6')}}</td>
<td>Definit en l'Annex B (normative) per Característiques addiccionals d'ECMAScript per Navegadors Web</td>
</tr>
</tbody>
</table>
<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2>
<div>{{CompatibilityTable}}</div>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Característica</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari</th>
</tr>
<tr>
<td>Suport bàsic</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Característica</th>
<th>Android</th>
<th>Chrome per Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Suport bàsic</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<h2 id="Vegeu_també">Vegeu també</h2>
<ul>
<li>{{jsxref("String.prototype.slice()")}}</li>
<li>{{jsxref("String.prototype.substring()")}}</li>
</ul>
|