toLocaleString在IE中返回未触发的字符

时间:2016-09-19 02:06:34

标签: javascript internet-explorer weekday

我希望toLocaleString返回“星期一”(6个字符),

但是IE给了我一些意想不到的性格,

如果没有其他扩展API(moment.js等等)

,我怎么能正常工作

IE11:

var weekday = new Date('2015-11-23').toLocaleString("en-us", { weekday: 'long'});

weekday.toString() //"Monday"
weekday.length //7
weekday.charCodeAt(0) //8206 <-- what is this

Chrome53:

var weekday = new Date('2015-11-23').toLocaleString("en-us", { weekday: 'long'});

weekday.toString() //"Monday"
weekday.length //6
weekday.charCodeAt(0) //77

1 个答案:

答案 0 :(得分:0)

好的,我做了一些调查:

字符8206是Left-to-right mark,很可能由MS作为其国际化规则的一部分添加。

它很容易被剥离。

var stripped = weekday.replace(/\u200E/g, "");
console.log(stripped.length)

只需注意:您可能还会遇到角色8207,这是一个从右到左的标记 - 可以轻松剥离。