Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery数据表过滤器_Javascript_Jquery_Datatables - Fatal编程技术网

Javascript Jquery数据表过滤器

Javascript Jquery数据表过滤器,javascript,jquery,datatables,Javascript,Jquery,Datatables,我在我的网页中使用了Jquery数据表。我还为网格使用了自定义过滤器。下面是自定义过滤器的代码 代码 var oTable = $('#myDataTable').dataTable(); jQuery('#myDataTable_filter').find("input").keyup(function () { var Input = $(this).val(); oTable.fnFilter('^' + Input, null, true, null); $('

我在我的网页中使用了Jquery数据表。我还为网格使用了自定义过滤器。下面是自定义过滤器的代码

代码

var oTable = $('#myDataTable').dataTable();

jQuery('#myDataTable_filter').find("input").keyup(function () {
    var Input = $(this).val();
    oTable.fnFilter('^' + Input, null, true, null);
    $('#myDataTable_filter').find("input").val(Input);
});

上述代码适用于所有情况,但不适用于搜索(A*STAR)。它没有选择正确的搜索结果。任何人都可以帮我解决问题。

您的解决方案不适用于
A*STAR
,因为当您在此处筛选时:

oTable.fnFilter('^' + Input, null, true, null);
正则表达式正在生成
^A*星
,但是当
*
是元字符时,正确的正则表达式应该由
\
转义,所以正则表达式应该是
^A*星

你可以看到


添加了更新的代码^元字符

var Input = $(this).val().replace(/([&\/\\#,\^+()$~%.'":*?<>{}])/g,"\\$1");//this is will add prefix \ to meta character
oTable.fnFilter('^' + Input, null, true, null);
var Input=$(this).val().replace(/([&\/\\\\\\\\\\\\,\^+()$~%.”:*?{}])/g,“\\$1”);//这将为元字符添加前缀
fnFilter(“^”+输入,null,true,null);

您的解决方案不适用于
A*STAR
,因为在此处筛选时:

oTable.fnFilter('^' + Input, null, true, null);
正则表达式正在生成
^A*星
,但是当
*
是元字符时,正确的正则表达式应该由
\
转义,所以正则表达式应该是
^A*星

你可以看到


添加了更新的代码^元字符

var Input = $(this).val().replace(/([&\/\\#,\^+()$~%.'":*?<>{}])/g,"\\$1");//this is will add prefix \ to meta character
oTable.fnFilter('^' + Input, null, true, null);
var-Input=$(this).val().replace(/([&\/\\\\\\\\\\\\\\\\\\\\\\\\\\,\^+()$~%.“:*?{}])/g,“\\$1”)//这是将向元字符添加前缀\的操作
fnFilter(“^”+输入,null,true,null);

你能试试oTable.fnFilter(“^”+Input.replace(“*”,“\*”),null,true,null);能否尝试oTable.fnFilter('^'+Input.replace('*','\*')、null、true、null);搜索单词
A^STAR
怎么样??由于上面的正则表达式在搜索
A^Start
时不起作用。您希望匹配的确切值??在我的网格中,新加坡的
A^Star Hotels
值存在。如果我使用关键字
A^Star
搜索,则正则表达式应产生上述值。但它不返回任何值。还需要一个帮助。当我搜索字符串
(CHS)
时,在我完成键入
(CHS)
之前,过滤记录中没有任何更改。比如说,网格中有10条记录。其中只有一条记录与字符串
(CHS)
匹配。但是当我输入
(CHS
字符)时,网格中的字符没有变化然后它很好地显示了一条记录。请帮助。搜索
A^STAR
这个词怎么样?因为上面的正则表达式在搜索
A^Start
时不起作用。你想匹配什么?在我的网格中,值
A^STAR Hotels In Singapore
在那里。如果我用键搜索,正则表达式应该得到上面的值word
A^Star
。但它不返回任何值。还需要一个帮助。当我搜索字符串
(CHS)
时,在我完成键入
(CHS)
之前,筛选记录中不会有任何更改。例如,网格中有10条记录。其中只有一条记录与字符串
(CHS)
匹配。但是当键入
(CHS
字符在网格中没有变化。当我完成
(CHS)
时,它会很好地显示一条记录。请帮助。