Я пытаюсь отфильтровать таблицу jquery DataTables с ключевыми словами/тегами, введенными через интерфейс тегов Select2, используя фильтр регулярных выражений, чтобы я мог фильтровать по ИЛИ вместо точного совпадения.
Я инициализирую DataTables с разделителем, установленным на канал | (регулярное выражение ИЛИ), но он по-прежнему разделяет теги запятыми в атрибуте значения ввода.
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 );
Даже если я вручную изменяю поле поиска, оно не всегда фильтруется с помощью ИЛИ, в основном при использовании тегов из двух слов или тегов с запятой, например «защита, безопасность ...» - я думаю, что могу обойти параметр «разделитель». не работает должным образом, используя замену входного значения, чтобы превратить запятые в каналы, хотя это не идеально, поскольку некоторые теги имеют запятые, и мне также нужно заменить пробелы и запятые + пробелы их аналогами регулярных выражений, чтобы это работало.
function fnFilterGlobal () {
jQuery('#programs-table').dataTable().fnFilter(
jQuery("#program-filter-keyword").val().replace(',','|'),
null,
true,
true
);
}
Как я это вижу, у меня есть два варианта:
Кто-нибудь знает, как правильно настроить это, чтобы использовать теги из select2 в качестве фильтра ИЛИ для таблиц данных?
Я новичок в регулярном выражении - есть ли способ преобразовать то, что Select2 вводит в качестве входного значения для тегов, в правильное регулярное выражение ИЛИ поиск, включая теги с пробелами/запятыми?
Вот пример CodePen (jsFiddle не работает). http://codepen.io/tsdexter/pen/GcnxA
Спасибо.