<分区>
我遇到了一个可能的 IE 错误,调用 JavaScript .length
函数返回一个值,如果/当字符串派生自 .toLocaleString()
。
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.)
有趣的是,上面的代码示例将为以下内容返回 true(在 IE 中):(month[0] should be "M")
month[0] == "";
month[1] == "M";
month[2] == "a";
month[3] == "r";
month[4] == "c";
month[5] == "h";
在我的特殊情况下,这导致了我需要 .slice()
月份的问题。示例:如果月份是三月,那么 IE 将为 month.slice(0,3)
返回“Ma”而不是“Mar”。
这是 IE 的已知错误吗?是否有解决此问题的方法和/或解决方法?
运行此 fiddle在 IE 和 Chrome/Firefox/Safari 中,注意 month.length
在 IE 中的错误。
我的环境:
OS: Win Server 2012 R2
IE Version: 11.0.9600.18231 (Update Versions: 11.0.29)
Locale: English/US