jQuery DataTables - 按完全匹配过滤列

Jim*_*med 28 regex search jquery filter datatables

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

例如,我有一个按ID#过滤的搜索栏.我只想要与输入的确切#匹配的记录.

因此,如果123输入的,我不想12345,91239要显示的,等等等等.只有123.

bRegex在FAQ页面上看到了一些信息,但它对我不起作用.有任何想法吗?

小智 41

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

 table.column(i)
 .search("^" + $(this).val() + "$", true, false, true)
 .draw();
Run Code Online (Sandbox Code Playgroud)

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


Jim*_*med 26

好的解决了这个问题.但是,由于我使用完全匹配的列有时包含多个以逗号分隔的ID#,因此我无法使用完全匹配搜索.

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

oTable.fnFilter( "^"+TERM+"$", COLUMN , true); //Term, Column #, RegExp Filter
Run Code Online (Sandbox Code Playgroud)


Kei*_*amo 8

$(document).ready( function() {
    $('#example').dataTable( {
        "oSearch": {"bSmart": false}
    } );
} )
Run Code Online (Sandbox Code Playgroud)

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

从文档中

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

UPDATE

我找到了这个:

oSettings.aoPreSearchCols[ iCol ].sSearch = "^\\s*"+'1'+"\\s*$";
oSettings.aoPreSearchCols[ iCol ].bRegex = false;
oSettings.aoPreSearchCols[ iCol ].bSmart= false;
Run Code Online (Sandbox Code Playgroud)

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

看起来你可以设置bSmartbRegex每列,以及指定每列的手动正则表达式.