2010-09-08 10 views
9

Ich habe eine Variable:Javascript-Strings - die Zeichen an einem bestimmten Punkt immer

var text = "hello"; 

Ich möchte die 0 positioniert Charakter erhalten, also:

var firstChar = text[0]; 

Einfach. In Firefox und Chrome funktioniert das. In IE jedoch bekomme ich immer 'undefined' zurück

Irgendwelche Ideen, warum dies in IE geschehen könnte?

+3

Von nun versuchen, lernen, dass alles, was in 'good' Browsern funktioniert nicht in' IE' nicht. Ich denke, MS-Leute wollten eine zusätzliche Dimension neben dem aktuellen Webentwicklungskontext kodieren. –

+0

Addenda: funktioniert gut in IE8 (wie ich dies schreibe), und in IE7, anstatt einen Fehler zu werfen, gibt etwas zurück, das als NaN geparst ist anstatt zu explodieren. Die Verfolgung dieses Problems dauerte viel länger als erwartet ... – ANeves

Antwort

17

Strings sind nicht zugänglich wie Arrays in IE (vor IE9). Stattdessen können Sie charAt verwenden, die verfügbar Cross-Browser ist:

var text = "hello"; 
var firstChar = text.charAt(0); 
// firstChar will be 'h' 
+1

+1 für * charAt() *. FWIW, IE8 im Standards-Modus und IE9 unterstützen die Array-artige Referenzierung von Zeichen in Strings wie Chrome und Firefox. –

+0

Danke, das funktioniert ein Leckerbissen in IE! – adamwtiko

1

Sie .substr() verwenden können.

var firstChar = text.substr(0,1); 
+0

Ich würde dies verwenden, da es die meisten Cross-Browser-kompatibel ist. –

0

Ich bin mir nicht sicher, warum das nicht funktioniert, aber man konnte mit substr()

Verwandte Themen