如果您在数据表中搜索一个单词,它将在单词的任何位置找到。
示例:在表中搜索“b”:
banana
subway
sub
将返回全部 3 个。
如果我在搜索字段中输入“b”,如何设置只获取“banana”。
最佳答案
我敢假设您正在考虑 jQuery dataTables(也用正确的 datatable 标签替换了不明确的 jquery-datatables 标签)。
如果您想过滤列数据开头的内容,而不是搜索/过滤整个字符串,您可以创建自定义过滤函数。像这样,也不区分大小写:
$.fn.dataTable.ext.search.push(
function( settings, data, dataIndex ) {
//$('#example_filter input') is the default #example filter box
var term = $('#example_filter input')
.val()
.toLowerCase();
for (var i=0;i<data.length;i++) {
value = data[i]
.toString()
.toLowerCase();
if (value.indexOf(term)==0) {
return true;
}
};
return false;
}
);
查看演示 -> http://jsfiddle.net/v1yguqLz/
注意:根据文档以及 dataTables 在“过去”的工作方式,这应该是 regular expression search 的任务。 ,但我什至无法让最简单的正则表达式示例工作,无论是通过 table.search()
还是 table.column().search()
。已尝试使用 1.10.0 到 1.10.5(最新版本)。我想这与这个错误报告有关 -> https://github.com/DataTables/DataTables/issues/341 和向后兼容性。
另一方面,如果您只想过滤列数据的开头内容,那么自定义过滤函数无论如何都是完美的解决方案。
关于jQuery dataTables 搜索 - 设置搜索过滤器以仅获取以搜索值开头的匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29359594/