如何修复DataTables 1.10中非美国字母(如š,č,ť)的排序?

例如,"š"类似于"s",但是现在这些字符(以这些字符开头的单词)在结尾(在A-Z之后)。

对于DataTables 1.10版,我需要它。

最佳答案

这对测试用例,奇数值示例,有关您的语言环境和语言的一些信息等确实有帮助。但是,我认为您可以通过在自定义排序插件中使用localeCompare()来简单地解决此问题,指定您的语言环境,这一点非常重要:将sensitivity级别设置为'accent'

jQuery.extend( jQuery.fn.dataTableExt.oSort, {
  "locale-compare-asc": function ( a, b ) {
     return a.localeCompare(b, 'da', { sensitivity: 'accent' })
  },
  "locale-compare-desc": function ( a, b ) {
     return b.localeCompare(a, 'da', { sensitivity: 'accent' })
  }
});


用法

var table = $('#example').DataTable({
    columnDefs : [
     { targets: 0, type: 'locale-compare' }
  ]
})


如前所述,不能确定-OP中的信息稀疏,但是从理论上讲,这在大多数情况下是可以完成的。至少对我有用。请记住要传递有效的locale字符串,da(丹麦语)仅用于示例目的。

演示-> http://jsfiddle.net/rc4wxnc7/

08-08 05:47