如果您在数据表中搜索一个单词,它将在单词中的任何位置找到。
示例:搜索" b"在表格中:
banana
subway
sub
将返回全部3。
我怎么能设置只获得" banana"如果我输入" b"在搜索领域。
答案 0 :(得分:3)
我敢于假设您正在考虑使用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;
}
);
参见演示 - &gt;的 http://jsfiddle.net/v1yguqLz/ 强>
注意:这应该根据文档以及dataTables如何在过去的日子里工作&#34;是一个regular expression search的任务,但我无法通过table.search()
和table.column().search()
来完成最简单的正则表达式示例。已尝试使用 1.10.0 到 1.10.5 (最新版本)。我想这与这个bug报道有关 - &gt; https://github.com/DataTables/DataTables/issues/341 以及向后兼容性。
另一方面,如果您只想过滤列数据的开头,那么自定义过滤功能无论如何都是完美的解决方案。
答案 1 :(得分:0)
我为其中一个列设置了单独的搜索字段,这是我的搜索开头解决方案:
vm.searchForLocation = function() {
vm.dtInstance.DataTable.column(2)
.search("^"+vm.locationCode, true, false )
.draw();
}