排序中国汉字字符 javascript – Datatables – jQuery

Posted on

为了学习为jQuery 组件数据表写插件 ,我为其做了一个专门的网站http://sorting.lcube.se/ 。您可以尝试为不同的术语排序。我打算解释中国字符的排序,并告诉大家我的排序方法和在此期间遇到的麻烦。

我遇到的第一个问题是,我认为三是在二之后出现的。我曾经深信这是一个错误。但通过仔细思考之后,我意识到数字3三的部首里的笔画数少于二的部首数量,二的部首里有两个笔画。

Chinese char Shows Eight principles; for five strokes
今天,在JavaScript只有少许的几行代码 。诀窍是使用 localCompare ( 参考 )。然而众所周知这一功能在不同的网页浏览器存在这问题。DataTables 的作者Allan Jardine给我指出了这一点。我会在我的博客上进一步探索看是否给汉字排序带来问题。

$.fn.dataTableExt.oSort['chinese-string-asc'] = function (s1, s2) {
    return s1.localeCompare(s2);
};
$.fn.dataTableExt.oSort['chinese-string-desc'] = function (s1, s2) {
    return s2.localeCompare(s1);
};
 
/* Main function*/
function ColorDataTablesInit(tableDivId) {
 
 
    $(tableDivId).dataTable({
        "sPaginationType": "full_numbers",
        "aoColumnDefs": [{
            "sType": "chinese-string",
            "aTargets": [1,2,3,4]
        }]
    });
 
}