对于我的网站,我使用dataTable插件,并为用户提供过滤结果的可能性。我实现了一些过滤器,它们从结果中动态加载,并包含每列的所有不同值。
由于可以组合多个过滤器,因此我拒绝了智能搜索,而是必须激活regEx-search。所有这些都很好。
我的问题是:我的内容类似于"内容(其他内容)",对于包含括号的内容,搜索无效(无结果)找到了。)
在调用之前是否有可能屏蔽searchString
:
table.column('myColumn:name').search(searchString, true, false, true).draw();
我尝试用" \)"替换字符串或类似的东西,但这并没有帮助。如果我只删除那些特殊字符,则无法找到结果,因为regEx搜索需要完全字符串。
有人可以帮我吗?
答案 0 :(得分:2)
<强>解强>
您可以添加和使用特殊的函数escapeRegExp()
MDN - Regular Expressions文章中的字符:
function escapeRegExp(string){
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
}
// ... skipped ...
table.column('myColumn:name').search(escapeRegExp(searchString), true, false, true).draw();
<强>样本强>
请参阅this jsFiddle以获取代码和演示。