我在我的应用程序中使用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等。
非常感谢任何帮助..
答案 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。