jQuery dataTables 搜索 - 设置搜索过滤器以仅获取以搜索值开头的匹配项

标签 jquery search filtering datatables

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

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

 banana
 subway
 sub

将返回全部 3 个。

如果我在搜索字段中输入“b”,如何设置只获取“banana”。

最佳答案

我敢假设您正在考虑 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.01.10.5(最新版本)。我想这与这个错误报告有关 -> https://github.com/DataTables/DataTables/issues/341 和向后兼容性。

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

关于jQuery dataTables 搜索 - 设置搜索过滤器以仅获取以搜索值开头的匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29359594/

相关文章:

javascript - 在 React 组件中执行另一个 JS 文件中的函数

jquery - 如何在JPlayer中获取歌曲的时长

r - 提取列名并与另一列匹配

amazon-web-services - 我如何在标签中的 Amazon EC2 过滤器中使用正则表达式

JavaScript 函数未完成

php - 使用 jquery 从显示页面上的 php 输出中获取信息

java - 每个字母出现的次数

json - 弹性查询以显示完全匹配或其他字段(如果找不到)

c++ - STL 容器 list、deque、vector 等的基类是什么?

ios - SearchBar 在过滤时忽略字符