我想在javascript中对法语,德语,波兰语,中文等单词进行排序。
因此我使用了如下所述的localeCompare()方法:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare
在此笔中,您可以看到法语示例:http://codepen.io/anon/pen/wWWYoy?editors=1111
左侧是它应该的顺序 - 右侧是浏览器生成的顺序。
与德语字母相同的例子:http://codepen.io/anon/pen/ezzPWa
function frsort(a, b) {
return a.localeCompare(b);
}
我只是在没有locales或options参数的情况下使用localeCompare,因为很少有浏览器支持它们(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare)
然而,developers.mozilla.org上写着:
Android - 基本支持(是)
即使在Android 4.0.4上使用Android浏览器排序也是错误的。 Android 4.0.4上的Chrome以正确的方式排序。
我的代码中是否有任何错误,或任何解释为什么Stock Android浏览器正在排序错误?
答案 0 :(得分:0)
如果您没有指定选项,则股票Android浏览器会显示正确的行为。这是应该用来解决重音问题的选择。
a.localeCompare( b, 'fr', { sensitivity: 'base' } );
如果您需要在较旧的浏览器上支持重音折叠,您可能需要自己动手。 https://alistapart.com/article/accent-folding-for-auto-complete