我正在尝试使用正则表达式过滤器过滤带有通过 Select2 标记界面输入的关键字/标签的 jquery DataTables 表,以便我可以过滤 OR 而不是完全匹配。
我正在初始化 DataTables,分隔符设置为 pipe | (正则表达式或),但它仍然在输入的 value 属性中用逗号分隔标签。
jQuery('#programs-table').dataTable({
"sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>",
"bPaginate": false,
"separator": "|"
});
jQuery("#program-filter-keyword").change( fnFilterGlobal );
即使我手动更改搜索字段,它也不总是使用 OR 进行过滤,主要是在使用两个单词标签或带有逗号的标签时,如“保护、安全......” - 我想我可以绕过“分隔符”选项通过在输入值上使用替换将逗号转换为管道,虽然这并不理想,因为某些标签有逗号,我还需要用它们的正则表达式替换空格和逗号+空格才能使其工作。
function fnFilterGlobal () {
jQuery('#programs-table').dataTable().fnFilter(
jQuery("#program-filter-keyword").val().replace(',','|'),
null,
true,
true
);
}
在我看来,我有两个选择:
有谁知道将其设置为使用 select2 中的标签作为数据表上的 OR 过滤器的正确方法
我是正则表达式的新手 - 有没有办法将 Select2 作为标签的输入值输入的内容转换为正确的正则表达式或搜索,包括带有空格/逗号的标签?
这是一个示例的 CodePen(jsFiddle 已关闭)。http://codepen.io/tsdexter/pen/GcnxA
谢谢。