使用 DataTables 格式化数字会中断排序

Formatting numbers using DataTables breaks sorting

我有一个要排序的表格,问题是当我将区域设置添加到数字时,它会中断排序,它会像字符串一样排序。

我按照 this 的回答进行了修改而不必使用正则表达式,但随后它开始排序,因为它是字符串而不是数字,例如

1
1.200
2
$(document).ready(function () {
    $('.my_table').DataTable({
        "bProcessing": true,
        "bPaginate": true,
        "bDestroy": true,
        "bShowPollInfo": false,
        "iDisplayLength": 20,
        "aLengthMenu": [[20, 40, -1], [20, 40, "_all"]],
        "sScrollX": "100%",
        "aoColumns": [
            { "sWidth": "160px", "sClass": "nowrap" },
        ],
        "aoColumnDefs": [
            {
               "mRender": function (data, type, row) {
                   return formatNumbers(data);
               },
               "aTargets": [1, 2]
            },
        ],
    });
});
function formatNumbers(val) {
    return parseInt(val).toLocaleString("de-DE");
}

"aoColumnDefs"部分改成这个

"aoColumnDefs": [
    {
       "mRender": function (data, type, row) {
            if( type === 'display' ){
                return formatNumbers(data); // only format the data for display
            }else{
                return data; // the default data should be used for sorting
            }
       },
       "aTargets": [1, 2]
    },
],