Jed*_*Jed 9 javascript locale string-length internet-explorer-11
我遇到了一个IE调用JavaScript的错误.length如果/当字符串派生时,函数返回一个值为1的值.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.)
Run Code Online (Sandbox Code Playgroud)
有趣的是,上面的代码示例将为以下内容返回true(在IE中):( month [0]应为"M")
month[0] == "";
month[1] == "M";
month[2] == "a";
month[3] == "r";
month[4] == "c";
month[5] == "h";
Run Code Online (Sandbox Code Playgroud)
在我的特定情况下,这导致我需要.slice()一个月的问题.示例:如果月份是3月,则IE将返回"Ma" month.slice(0,3)而不是"Mar".
这是IE的已知错误吗?是否有针对此问题的修复和/或解决方法?
在IE和Chrome/Firefox/Safari中运行这个小提琴并注意month.lengthIE中的错误.
我的环境:
操作系统:Win Server 2012 R2
IE版本:11.0.9600.18231(更新版本:11.0.29)
地区:英语/美国
小智 9
所以,我在IE 11中偶然发现了这篇帖子toLocaleDateString错误
它似乎是由toLocaleDateString函数在IE11中添加额外的LTR和RTL字符引起的.其中一条评论给出了正在使用的正则表达式替换功能.
month.replace(/[^ -~]/g,'');
Run Code Online (Sandbox Code Playgroud)
尝试在执行之后添加它.toLocaleDateString(),它应该工作.它对我有用.
我们鄙视IE的另一个原因.
| 归档时间: |
|
| 查看次数: |
1260 次 |
| 最近记录: |