Javascript 使用数据表按字母顺序而不是数字顺序对地址列进行排序

Javascript 使用数据表按字母顺序而不是数字顺序对地址列进行排序,javascript,jquery,datatables,Javascript,Jquery,Datatables,我正在使用jquery.dataTables.js创建一个表,其中一列是addresses 我希望能够按街道名称而不是号码对地址进行排序 我试图覆盖默认排序,如下所示: jQuery.extend(jQuery.fn.dataTableExt.oSort, { "num-html-pre": function (a) { var x = String(a).replace(/<[\\s\\S]*?>/g, "");

我正在使用jquery.dataTables.js创建一个表,其中一列是addresses

我希望能够按街道名称而不是号码对地址进行排序

我试图覆盖默认排序,如下所示:

       jQuery.extend(jQuery.fn.dataTableExt.oSort, {
        "num-html-pre": function (a) {
            var x = String(a).replace(/<[\\s\\S]*?>/g, "");
            return parseFloat(x);
        },

        "num-html-asc": function (a, b) {
            return ((a < b) ? -1 : ((a > b) ? 1 : 0));
        },

        "num-html-desc": function (a, b) {
            return ((a < b) ? 1 : ((a > b) ? -1 : 0));
        }
    });

    var table = $('#addresses').DataTable({
        "order": [[0, "asc"]]
        , "aoColumns": [{ "sType": "num-html", "aTargets": [0] }, { "sType": "numbercase" }, null, { "sType": "numbercase" }, null, { "sType": "numbercase" }]
    });
jQuery.extend(jQuery.fn.dataTableExt.oSort{
“num html pre”:函数(a){
var x=String(a).replace(//g,“”);
返回浮点数(x);
},
“num html asc”:函数(a,b){
回报率((ab)?1:0);
},
“num html desc”:函数(a、b){
回报率((ab)?-1:0);
}
});
变量表=$('#地址')。数据表({
“订单”:[[0,“asc”]]
,“aoColumns”:[{“sType”:“num html”,“ataargets”:[0]},{“sType”:“numbercase”},null,{“sType”:“numbercase”},null,{“sType”:“numbercase”}]
});
这一半有效

它分页为每页10条记录,通常返回200-300条记录,因此有20-30页。代码将按字母顺序对地址(行[0])进行排序,但仅针对当前页面上的10条记录,而不是整个记录集

此外,它还中断了可以单击列标题在asc/desc之间切换的功能

帮个小忙?
谢谢

我明白了,我需要在num html pre函数中删除parsefloat(x)。下面是它现在的样子:

        "num-html-pre": function (a) {
            var x = String(a).replace(/<[\\s\\S]*?>/g, "").replace("&nbsp;", "");
            var y = x.split(' ');
            return y[1];
        },
“num html pre”:函数(a){
var x=String(a).replace(//g,“”).replace(“,”);
变量y=x.分割(“”);
返回y[1];
},