如何使用DataTables jQuery插件和正则表达式过滤短语?

时间:2012-04-03 14:24:49

标签: jquery regex datatables

我正在使用jQuery DataTables插件对一组表结果进行过滤。我的表列出了他们所属的客户和成员。我有一个下拉列表,允许用户为特定组成员的客户过滤表格。我的问题是客户可以是多个组的成员,所有这些都列在一个列中。

例如,Joe可能是以下群组的成员:

  • 第1组
  • 第5组
  • 第10组

如果我定期过滤(见下文),并且用户从下拉列表中选择“第1组”,它仍会显示属于“第10组”成员的客户。

function fnFilterColumn ( i ){
    $('#results').dataTable().fnFilter(
        $("#filter").val(),
        i,
        false            
    );
}

如果我启用正则表达式(见下文),那么它会进行“精确”匹配。因此,如果用户从下拉列表中选择“组1”,它将仅显示仅为“组1”成员的客户。

function fnFilterColumn ( i ){
     $('#results').dataTable().fnFilter(
         '^' + $("#filter").val() + '$',
         i,
         true        
    );
}

我将如何使其过滤“整个词组匹配”。因此,“Group 1”的过滤器将显示“Group 1”中的过滤器,而不会抓取“Group 10”。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

正则表达式方法似乎是明智的。 只需使用单词边界而不是开始/结束锚点:

function fnFilterColumn ( i ){
    $('#results').dataTable().fnFilter(
        '\\b' + $("#l"+(i)+"_filter").val() + '\\b',
        i,
        true        
    );
}

如果你这样做,你也会匹配多个组。