用不同的单词正确调整数据表过滤器

时间:2018-11-11 13:19:02

标签: jquery regex datatables

我有一个包含几列的数据表。 其中之一是id = event

要通过“事件”进行过滤,我将发布一个具有多个select2(id = event_filter)的模式,然后单击“发送”按钮(id = filter-button),我将使用javascript启动以下代码。

$(document).ready(function (e) {
let table = $('#datatable-table').DataTable();
$('#filter-button').click(function (e) {
    e.preventDefault();
    let str = $('#event_filter').find(':selected').map(function() {
        return $( this ).text();
    })
        .get()
        .join( "|" );
    if (str.length > 0){
        console.log(str);
        table
            .columns($('th#event'))
            .search(jQuery.fn.DataTable.ext.type.search.string(str),true,false  )
            .draw();
    } else {
        table
            .columns($('th#event'))
            .search("")
            .draw();
    }
  })
})

选择选项包括:

-纳塔尔

-Natal前

-产后保育

问题是:当我选择“仅纳塔尔”时,console.log(str)返回纳塔尔,但是表过滤了“纳塔尔”,“纳塔尔前”和“后纳塔尔”。

您必须具有的行为是:

我选择Natal =>仅显示带有Natal的行

选择新生代和新生代=>仅出现具有新生代和新生代的行

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方法:

return '^'+$(this).text()+'$';