【发布时间】:2016-10-28 18:57:49
【问题描述】:
我正在为 DataTables 创建一个自定义排序插件,它将对包含非数字行的数字列进行排序。我得到了将“N/A”行放在底部的部分,但似乎无法弄清楚如何让它忽略数字中的逗号。
例如:
$12,443.00
362,123,231
不适用
不适用
空
34,242.42
23,234
空
下面的代码设法忽略了除了数字中的逗号之外的所有内容。
代码:
function numeric_sort(a, b, high) {
var reg = /[+-]?((\d+(\.\d*)?)|\.\d+)([eE][+-]?[0-9]+)?/;
a = a.match(reg);
a = a !== null ? parseFloat(a[0]) : high;
b = b.match(reg);
b = b !== null ? parseFloat(b[0]) : high;
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
}
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"numeric-empty-bottom-asc": function (a, b) {
return numeric_sort(a, b, Number.POSITIVE_INFINITY);
},
"numeric-empty-bottom-desc": function (a, b) {
return numeric_sort(a, b, Number.NEGATIVE_INFINITY) * -1;
}
} );
我的代码来自:http://jsfiddle.net/6qmkY/
任何帮助将不胜感激。
【问题讨论】:
-
如果您对原始插件github.com/davidkonrad/datatables-sort-numbers-ignore-text987654322@发现一些有用的更正,请提出拉取请求
标签: datatables datatables-1.10