我知道有一个函数叫 String.prototype.localeCompare您可以使用它,并且可以将区域设置列表作为第二个参数发送。
string.localeCompare(compareString [, locales [, options]])
但是如果你查看浏览器兼容性表,只有 Chrome 支持。
如何根据特定区域设置对 JavaScript 中的字符串进行排序或比较?
所有大型网站(例如 eBay 或亚马逊)是如何做到这一点的?他们必须在前端进行某种字符串排序..对吗?
最佳答案
也许您需要排序,而不是比较?
Javascript 数组 sort
方法按其 Unicode(非 ASCII)代码对字符串进行排序。您可以对字符串数组进行排序以按字母顺序排列。
['Собака', 'Кошка'].sort()
会将数组排序为 ["Кошка", "Собака"]
,这在 Ru_ru 语言环境中是正确的。
您可以添加比较功能,如下所示:
['Собака', 'Кошка', 'Свекла'].sort(function(a, b) {
return a[1] > b[1]?1:-1;
})
Javascript 将按 Unicode 逐个字符地比较字符串。在我的示例中,比较位于 native 低级代码的 a[1] > b[1]
内部。排序函数需要返回-1或1来替换数组元素。
关于javascript - 如何根据特定区域设置对 JavaScript 中的字符串进行排序或比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20091927/