数据表正则表达式搜索精确字符串(不是子字符串)

时间:2016-08-10 18:31:33

标签: jquery regex datatables datatables-1.10

假设我有一个包含三行的表格。在一栏中,我有这些vaules

  1. 教练
  2. 助理教练
  3. 教练助理教练
  4. 教练
  5. 如果我现在搜索“coach”,则返回所有行。我不希望这样。我需要的是两组代码来执行以下操作:

    1)能够输入单词“coach”,只返回第1行和第3行。 2)能够键入单词“coach”并且只返回第1行(区分大小写)

    换句话说,我不希望返回任何具有子串coach的记录。只是教练。我无法弄清楚这一点,因为助理和教练之间有一个空间和正则表达式我已经认识到这个独立的单词并将其返回。

    如果可能,请告诉我。

    我目前的代码是:

    var stringFilter = $(this).val();          
    var myregex = ("\\b" + stringFilter + "\\b");
    $("##add_grid").DataTable().column().columns(7).search(myregex,true,false).draw();
    

3 个答案:

答案 0 :(得分:1)

如果您希望按完全字符串搜索,可以使用column().search()尝试以下代码:

dt.column(0).search("^" + "coach" + "$", true, true, false).draw();

结果: https://jsfiddle.net/cmedina/7kfmyw6x/87/

答案 1 :(得分:0)

杰夫,请尝试以下代码:

$(document).ready( function () {
var table = $('#example').DataTable();
table.column().columns(6).search(myregex,true,false).draw();
} );

请记住,列从0开始。检查列是否位于#7位置。希望这有帮助!

答案 2 :(得分:0)

数据表提供了更大的灵活性。要使用表格数据,请在下面找到它,这将有所帮助:

/*column().search( input [,regex[ , smart[ , caseInsen ]]] ) */

 $("#add_grid").DataTable().column(i).search($('#col' + i + '_filter').val(), true,true,false).draw();