localeCompare()平台支持

时间:2016-06-16 20:33:54

标签: javascript android sorting locale

我想在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以正确的方式排序。

enter image description here

我的代码中是否有任何错误,或任何解释为什么Stock Android浏览器正在排序错误?

1 个答案:

答案 0 :(得分:0)

如果您没有指定选项,则股票Android浏览器会显示正确的行为。这是应该用来解决重音问题的选择。

a.localeCompare( b, 'fr', { sensitivity: 'base' } );

如果您需要在较旧的浏览器上支持重音折叠,您可能需要自己动手。 https://alistapart.com/article/accent-folding-for-auto-complete