j查询数据表过滤在使用逗号时不起作用



我有一个数据表,我正在尝试使用包含逗号的过滤器字符串过滤行。

这是数据表中的一行:

User logged in from 1.1.1.1, agent Mozilla/2.0

当我尝试使用1.1.1.1进行过滤时,搜索结果中会出现上述行。但是,当我尝试使用1.1.1.1,进行过滤时,它失败了,并且没有出现上面的行。

我尝试enabling/disabling正则表达式智能过滤等无济于事。

更新:

这是我用于过滤的代码:

this.$('.table-filter-field').on('input.my_datatable', function filterListener() {
$($(this).data('table')).dataTable().fnFilter(this.value);
});

如果他们comma (,)没有将您的字符串搜索分解到行中,那么您可能使用的搜索正则表达式响应不佳,您可以检查以下代码,该代码适用于我的许多行数据搜索项目。

$('#search_field').keyup(function () { // Search field keyup event.you can use other event instead.
var rex = new RegExp($(this).val(), 'i');
$('.yourtable tbody tr').hide();
$('.yourtable tbody tr').filter(function () {
return rex.test($(this).text());
}).show();
})

粗体标签是阻止搜索工作的原因。

请参阅此 SO 问题:使用自定义 sType 从过滤器中删除 HTML 标签

我在这个小提琴中使用上面的方法:https://jsfiddle.net/98Lecvx2/13/

这是密钥代码:

"aoColumnDefs": [
{   "aTargets": [0],
"mRender": function ( data, type, full ) {
if (type === 'filter') {
return data.replace(/(<([^>]+)>)/ig,"");
}
return data;
}
}
]

请注意,编写代码时只适用于第一列。 我添加了另一行,其中第一列和第二列翻转(因此第二列中有1.1.1.1),并且它没有与过滤器一起显示。 如果你的所有列都有 HTML,并且需要忽略所有 HTML,则需要aTargets字符串来包含所有这些列 -[0,1]在小提琴中。

最新更新