toLocaleString return IE 中的意外字符
toLocaleString return unexcepted characher in IE
我预计 toLocaleString
到 return "Monday"(6 个字符),
但是 IE return给我一些意想不到的字符,
如何在没有另一个扩展名的情况下正确获得工作日 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
好的,我做了一些调查:
字符 8206 是 Left-to-right mark,很可能是 MS 作为其国际化规则的一部分添加的。
可以轻松剥离。
var stripped = weekday.replace(/\u200E/g, "");
console.log(stripped.length)
请注意:您可能还会遇到字符 8207,这是一个从右到左的标记 -- 可以同样轻松地去除。
我预计 toLocaleString
到 return "Monday"(6 个字符),
但是 IE return给我一些意想不到的字符,
如何在没有另一个扩展名的情况下正确获得工作日 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
好的,我做了一些调查:
字符 8206 是 Left-to-right mark,很可能是 MS 作为其国际化规则的一部分添加的。
可以轻松剥离。
var stripped = weekday.replace(/\u200E/g, "");
console.log(stripped.length)
请注意:您可能还会遇到字符 8207,这是一个从右到左的标记 -- 可以同样轻松地去除。