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.0到1.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(); }