jQuery dataTables search – 设置搜索filter以仅获取与搜索值一样的匹配

如果您在数据表中搜索一个单词,它将在单词中的任何位置找到。

示例:在表格中搜索“b”:

banana subway sub 

将返回所有3。

如果我在搜索字段中键入“b”,我怎么能设置为只获得“香蕉”。

我敢于假设您正在考虑jQuery dataTables(已经用正确的jquery-datatables标签替换了具有相似性的数据表标签)。

如果要过滤列数据的开头,可以创建自定义过滤function,而不是搜索/过滤整个字符串。 像这样,它也不区分大小写:

 $.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 

看演示 - > http://jsfiddle.net/v1yguqLz/

注意 :这应该根据文档以及dataTables在“过去”中如何工作是正则表达式搜索的任务,但是我无法通过table.search()table.column().search()来获得最简单的正则表达式示例。 table.column().search() 。 尝试过1.10.01.10.5 (最新版本)。 我想这与这个bug报告有关 - > https://github.com/DataTables/DataTables/issues/341和向后兼容性。

另一方面,如果您只想过滤列数据的开头,那么自定义过滤function无论如何都是完美的解决方案。

我有一个单独的搜索字段用于其中一个列,这是我的搜索开头解决方案:

  vm.searchForLocation = function() { vm.dtInstance.DataTable.column(2) .search("^"+vm.locationCode, true, false ) .draw(); }