IEでJavaScriptを呼び出す可能性のあるバグが発生しました。 length
関数は、文字列が.toLocaleString()
から派生したときに/が1の場合にオフになる値を返します。文字列の長さが間違っているInternet Explorer
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.)
興味深いことに、上記のコード例は、以下のために(IEで)trueを返します。私の特定の場合において
month[0] == "";
month[1] == "M";
month[2] == "a";
month[3] == "r";
month[4] == "c";
month[5] == "h";
( "M" であるべき月[0])、これは月に.slice()
が必要な問題を引き起こしています。例:月が3月の場合、IEは "Mar"ではなくmonth.slice(0,3)
の "Ma"を返します。
これはIEの既知のバグですか?この問題の修正や回避策はありますか?
IEとChrome/Firefox/Safariでこのfiddleを実行して、month.length
がIEでどのように間違っているかに注目してください。
私の環境:
OS:勝つServer 2012のR2
IEバージョン:11.0.9600.18231(アップデートバージョン:11.0.29)
ロケール:英語/ US
OS、現在のロケール、およびブラウザのバージョンビルドを教えてください。 – Knu
それは奇妙です。私は同じ結果を得る。 .strim()と.replace(/ \ s + /、 "")を試しましたが、先頭に余分な空白文字が残っています –
'month.charCodeAt(0)'の結果は何ですか? – apsillers