DataTables列搜索与正则表达式

时间:2017-12-06 11:47:44

标签: jquery regex datatables

我在我的应用程序中使用jQuery Datatables插件。我正在尝试搜索与列中的数据完全匹配的字符串。我检查了jQuery DataTables - Filter列的完全匹配,这对我的情况不起作用。我的搜索字符串是带有|的正则表达式符号可能看起来像s1 | s2 | s12。当搜索字符串当时仅包含s1时,显示s1记录,但是当我搜索多个值s1 | s2时,则不显示任何记录

jQuery("#myTable").DataTable()
                    .columns("#")
                    .search("^"+'s1|s2'+"$",true,false)
                    .draw();

结果:未找到任何结果。

当我尝试下面的代码时,会显示附加记录

$('#myTable').DataTable().search('s1|s2').draw();

结果:s1,s2,s11,s14,s22,s25等。

非常感谢任何帮助..

1 个答案:

答案 0 :(得分:1)

你错过了两个括号。

jQuery("#myTable").DataTable()
                    .columns("#")
                    .search('^(s1|s2)$',true,false)
                    .draw();

并且search('s1|s2')没有给出期望的结果,因为默认情况下在搜索方法中禁用了正则表达式。所以它将s1|s2视为一个匹配s,1,2,|,s1,1 |的字符串..等。您必须提供第二个参数true和第三个参数false以避免冲突并导致意外结果。有关详细信息,请参阅search() method