使用逗号时jQuery数据表过滤不起作用

时间:2017-12-13 19:24:14

标签: jquery datatable datatables filtering

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

这是数据表中的一行:

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);
    });

2 个答案:

答案 0 :(得分:0)

如果他们的 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();

})

答案 1 :(得分:0)

粗体标记阻止搜索工作。

请参阅此问题:Strip HTML tags from filter with custom sType

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

这是关键代码:

gsl_matrix_pointer

请注意,代码编写仅适用于第一列。我添加了另一行,其中第一列和第二列被翻转(因此第二列中有&lt; b&gt; 1.1.1.1&lt; / b&gt ;,),并且它不会与过滤器一起显示。如果您的所有列中都包含HTML并且需要忽略所有HTML,那么您需要 "aoColumnDefs": [ { "aTargets": [0], "mRender": function ( data, type, full ) { if (type === 'filter') { return data.replace(/(<([^>]+)>)/ig,""); } return data; } } ] 字符串才能包含所有这些字符串 - aTargets