2010-10-29 9 views
35

E 'ok per fare questo:JavaScript stringa di accesso come matrice

var myString="Hello!"; 
alert(myString[0]); // shows "H" in an alert window 

O dovrebbe essere fatto sia con charAt (0) o substr (0,1)? Con "ok" intendo funzionerà sulla maggior parte dei browser, c'è una raccomandazione di best practice che dice altrimenti ecc.

Grazie.

risposta

35

L'utilizzo di charAt è probabilmente l'idea migliore dal momento che trasmette l'intento del codice in modo più accurato. Chiamare substr per un singolo personaggio è decisamente eccessivo.

alert(myString.charAt(0)); 
+0

Grazie, Saul. – Francisc

41

Accesso caratteri numerici come proprietà di una stringa è non-standard prior to ECMAScript 5 and doesn't work in all browsers (per esempio, non funziona in IE 6 o 7). È necessario utilizzare myString.charAt(0) invece quando il codice deve funzionare in ambienti non ECMAScript 5. In alternativa, se si sta andando ad essere l'accesso a un sacco di caratteri della stringa allora si può trasformare una stringa in un array di caratteri utilizzando il suo metodo split():

var myString = "Hello!"; 
var strChars = myString.split(""); 
alert(strChars[0]); 
+2

solo per aggiungere un collegamento/riferimento per il commento non standard, vedere (in Accesso carattere): https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String – davin

+0

@davin: Grazie. Ho ora collegato a quella sezione nella mia risposta. –

+0

Grazie, Tim. Volevo solo aggiungere che funziona in IE8. Non sono sicuro degli altri. – Francisc

Problemi correlati