Ich habe in einem möglichen Fehler mit IE rannte beim Aufruf der JavaScript. length
Funktion gibt einen Wert zurück, der um 1 aus ist, wenn die Zeichenfolge von .toLocaleString()
abgeleitet wurde.Internet Explorer Returning falsche Stringlänge
var d = new Date();
var locale = navigator.language;
var month = d.toLocaleString(locale, { month: "long"});
// month.length will return the length of the month string +1
//(eg: if month = "March", month.length will return 6.)
das Codebeispiel von oben Interessanterweise wird true zurück (in IE) nach folgenden Kriterien:
month[0] == "";
month[1] == "M";
month[2] == "a";
month[3] == "r";
month[4] == "c";
month[5] == "h";
In meinem speziellen Fall (Monat [0] sollte "M" sein), Dies verursacht ein Problem, wo ich .slice()
den Monat brauche. Beispiel: Wenn der Monat März ist, gibt IE "Ma" für month.slice(0,3)
anstelle von "Mar" zurück.
Ist das ein bekannter Fehler mit IE? Gibt es eine Behebung und/oder Abhilfe für dieses Problem?
Führen Sie diese fiddle in IE und Chrome/Firefox/Safari und beachten Sie, wie die month.length
in IE falsch ist.
Meine Umwelt:
OS: Win Server 2012 R2
IE Version: 11.0.9600.18231 (Update Version: 11.0.29)
Gebietsschema: Englisch/US
Geben Sie uns Ihr Betriebssystem, das aktuelle Gebietsschema und die Browserversion an. – Knu
Das ist bizarr. Ich bekomme das gleiche Ergebnis. Versuchte .trim() und .replace (/ \ s + /, ""), zeigt aber am Anfang immer noch Leerzeichen. –
Was ist das Ergebnis von 'monate.charCodeAt (0)'? – apsillers