0

正規表現フィルターを使用して Select2 タグ付けインターフェイスを介して入力されたキーワード/タグで jquery DataTables テーブルをフィルター処理しようとしているため、完全一致ではなく OR でフィルター処理できます。

セパレーターをパイプに設定して DataTables を初期化しています | (正規表現OR)しかし、入力の値属性でタグをコンマで区切っています。

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 でフィルタリングされるとは限りません。ほとんどの場合、2 つの単語タグまたは「保護、セキュリティ...」のようなコンマを含むタグを使用する場合です。「セパレータ」オプションを回避できると思います。一部のタグにはコンマが含まれているため理想的ではありませんが、入力値に置換を使用してコンマをパイプに変換すると、正常に機能しません。また、スペースとコンマ + スペースを対応する正規表現に置き換える必要があります。

function fnFilterGlobal () {
          jQuery('#programs-table').dataTable().fnFilter(
            jQuery("#program-filter-keyword").val().replace(',','|'),
            null,
            true,
            true
          );              
        }

私の見方では、次の 2 つのオプションがあります。

  1. select2のタグをデータテーブルのORフィルターとして使用するようにこれを設定する適切な方法を知っている人はいますか

  2. 私は正規表現を初めて使用します-Select2がタグの入力値として入力しているものを、スペース/カンマを含むタグを含む適切な正規表現または検索に変換する方法はありますか?

例の CodePen (jsFiddle がダウン) を次に示します。http://codepen.io/tsdexter/pen/GcnxA

ありがとう。

4

1 に答える 1