当比较包含特殊字符的字符串时,localeCompare出现问题。 我注意到IE浏览器使用与Firefox和Chrome不同的字符对字符串进行排序。
例如以下代码的输出:
Camera3D
将返回
var collator = new Intl.Collator('en-US', {
caseFirst: 'lower',
ignorePunctuation: false,
numeric: true});
var myArray = [' ','_','-',',','!','.','(',')','[',']','{','}','@','&','#','%','^','+','$'];
console.log(myArray.sort(collator.compare));
有没有办法解决这个问题,并使两个浏览器都一样工作?
或者是否可以将排序模式传递给localeCompare并定义特殊字符的自定义顺序?