LocaleCompare сортировать строки со специальными символами по-разному для IE и Chrome - PullRequest
0 голосов
/ 16 октября 2018

У меня проблема с localeCompare, когда сравниваются строки, содержащие специальные символы.Я заметил, что браузеры IE сортируют строки с теми символами, которые отличаются от Firefox и Chrome.

Например, вывод следующего кода:

var collator = new Intl.Collator('en-US', { 
     caseFirst: 'lower', 
     ignorePunctuation: false, 
     numeric: true});

var myArray = [' ','_','-',',','!','.','(',')','[',']','{','}','@','&','#','%','^','+','$'];
console.log(myArray.sort(collator.compare));

вернет

 // IE
 ["-", " ", "!", "#", "$", "%", "&", "(", ")", ",", ".", "@", "[", "]", "^", "_", "{", "}", "+"] 
 // Chrome
 [" ", "_", "-", ",", "!", ".", "(", ")", "[", "]", "{", "}", "@", "&", "#", "%", "^", "+", "$"] 

Есть ли способ решить эту проблему и заставить оба браузера работать одинаково?

Или, может быть, есть способ передать схему упорядочения в localeCompare и определить пользовательский порядок специальных символов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...