jQuery DataTables-通过完全匹配过滤列

2021/01/08 02:21 · jquery ·  · 0评论

尝试仅显示与在搜索栏中输入的搜索词的完全匹配。

例如,我有一个按ID#过滤的搜索栏。我只希望显示与输入的确切#匹配的记录。

因此,如果123输入的,我不想1234591239等等来显示。只有123

bRegex在“常见问题解答”页面上看到了一些有关信息,但对我来说不起作用。有任何想法吗?

这将为您提供准确的列结果。

 table.column(i)
 .search("^" + $(this).val() + "$", true, false, true)
 .draw();

即。搜索(输入,正则表达式,智能,caseInsen)

确定解决了问题。但是,由于我使用精确匹配的列有时包含多个用逗号分隔的ID#,因此我将无法使用精确匹配搜索。

但是对于那些感兴趣的人,这里是答案:

oTable.fnFilter( "^"+TERM+"$", COLUMN , true); //Term, Column #, RegExp Filter
$(document).ready( function() {
    $('#example').dataTable( {
        "oSearch": {"bSmart": false}
    } );
} )

尝试使用bSmart选项并将其设置为false

从文档中

“当“ bSmart”数据表将使用它的智能过滤方法(在数据中的任何点进行单词匹配时),如果为false,则不会这样做。”

更新

我找到了这个:

oSettings.aoPreSearchCols[ iCol ].sSearch = "^\\s*"+'1'+"\\s*$";
oSettings.aoPreSearchCols[ iCol ].bRegex = false;
oSettings.aoPreSearchCols[ iCol ].bSmart= false;

在此链接http://www.datatables.net/forums/discussion/4096/filtering-an-exact-match/p1

看起来您可以设置bSmartbRegex按列,以及为每列指定手动正则表达式。

如果您希望从一开始就完全匹配,可以尝试以下代码,

    var table = $('#myTable').DataTable()
    $('#filterrow > th:nth-child(2) > input').on( 'keyup change', function () {
        table
        .column( $(this).parent().index()+':visible' )
        .search( "^" + this.value, true, false, true )
        .draw();
    } );

您可以使用正则表达式进行精确匹配,如下所示:

var table = $('#dt').DataTable();

$('#column3_search').on('keyup', function () {
    // Note: column() accepts zero-based index meaning the index of first column is 0, second column is 1 and so on.
    // We use `2` here as we are accessing 3rd column whose index is 2.
    table.column(2)
         .search("^" + this.value + "$", true, false, true)
         .draw();
});

search函数的语法为:

搜索(输入,正则表达式,smart_search,不区分大小写)

在这种情况下,我们禁用智能搜索,因为search智能搜索设置为true时,函数内部使用正则表达式否则,这会在我们的正则表达式与search函数使用的正则表达式之间产生冲突

有关更多信息,请查看DataTable的以下文档

column()。search()

希望对您有所帮助!

只需设置正则表达式和聪明的假。您会得到确切的结果。

 $('#yourTableID').DataTable({ 
  search: {
     regex: false,
     smart: false
  }
 })
$(document).ready(function() {
    tbl = $('#example').dataTable();
    tbl.fnFilter("^" + filter_value + "$");
});

filter_value过滤器字段中输入的字符串在哪里

Datatables的当前版本支持在列的基础上使用真正的精确匹配。

table.column(i)
.search($(this).val(), false, false, false)
.draw();

文档解释了每个标志。

table.column(col_num).search(filter_value +“ $”,true,true,false).draw();

本文地址:http://jquery.askforanswer.com/jquery-datatables-tongguowanquanpipeiguolvlie.html
文章标签: ,   ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!