2016-09-19 12 views
2

я ожидал toLocaleString вернуться «Понедельник» (6 символов),toLocaleString вернуть unexcepted characher в IE

но 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

Зачем вам это нужно? Вы используете его только для отображения дат, правильно? – Bergi

+0

Потому что мне нужно их сортировать, например («Понедельник», «Вторник» ...) или («Воскресенье», «Понедельник» ...) –

ответ

0

ОК, я сделал некоторые исследования:

Характер 8206 является Left-to-right mark, скорее всего, добавляемые в РС в рамках своих правил интернационализации.

Его можно легко убрать.

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

Только примечание: Вы можете также столкнуться символ 8207, который является справа налево знак - что может быть раздели так же легко.

+0

Спасибо большое :) –