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)
$(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
看起来你可以设置bSmart和bRegex每列,以及指定每列的手动正则表达式.