Internet Explorer 返回错误长度的字符串
Internet Explorer Returning Wrong Length of String
我已经 运行 遇到一个可能的 IE 错误,其中调用 JavaScript .length
函数 returns 一个值偏离 1 if/when 字符串来自 .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.)
有趣的是,上面的代码示例 return 对以下内容为真(在 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 将 return“Ma”表示 month.slice(0,3)
而不是“Mar”。
这是 IE 的已知错误吗?是否有解决此问题的 and/or 解决方法?
运行 在 IE 中这个 fiddle 和 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
所以,我偶然发现了这个 post toLocaleDateString error in IE 11
看来是toLocaleDateString函数在IE11中添加了额外的LTR和RTL字符造成的。其中一条评论给出了适合我的正则表达式替换功能。
month.replace(/[^ -~]/g,'');
尝试在执行 .toLocaleDateString()
后添加它,它应该可以工作。它对我有用。
我们鄙视 IE 的另一个原因。
我已经 运行 遇到一个可能的 IE 错误,其中调用 JavaScript .length
函数 returns 一个值偏离 1 if/when 字符串来自 .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.)
有趣的是,上面的代码示例 return 对以下内容为真(在 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 将 return“Ma”表示 month.slice(0,3)
而不是“Mar”。
这是 IE 的已知错误吗?是否有解决此问题的 and/or 解决方法?
运行 在 IE 中这个 fiddle 和 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
所以,我偶然发现了这个 post toLocaleDateString error in IE 11
看来是toLocaleDateString函数在IE11中添加了额外的LTR和RTL字符造成的。其中一条评论给出了适合我的正则表达式替换功能。
month.replace(/[^ -~]/g,'');
尝试在执行 .toLocaleDateString()
后添加它,它应该可以工作。它对我有用。
我们鄙视 IE 的另一个原因。