您应该只需要通过删除非数字值将大值存在的字符串转换为数字。基于dataTables上的range filter example,我在这里使用正则表达式对读取的值进行了处理。我在fiddle中做了一些典型的测试数据,这些测试数据使用第5列作为薪水,但是您应该可以相应地进行修改:
$(document).ready(function() {
var table = $('#example').DataTable();
// Event listener to the two range filtering inputs to redraw on input
$('#min, #max').keyup(function() {
table.draw();
});
});
$.fn.dataTable.ext.search.push(
function(settings, data, dataIndex) {
var min = parseInt($('#min').val(), 10);
var max = parseInt($('#max').val(), 10);
// MODIFY THE COLUMN FOR VALUE:
var value = parseFloat(data[5].replace(/\D/g,'')) || 0;
if ((isNaN(min) && isNaN(max)) ||
(isNaN(min) && value <= max) ||
(min <= value && isNaN(max)) ||
(min <= value && value <= max))
{
return true;
}
return false;
}
);