[jQuery] DataTablesで半角スペースを含む文字列を検索

JavaScriptDataTables,jQuery

DataTablesを使ってる一覧テーブルで、「Ren, Wu」みたいに半角スペースを含む文字列を1単語として検索したいと言われた


DataTablesはスマートサーチ(a smart search)という検索機能(検索アルゴリズム)があって、デフォルトの状態でスマートサーチに設定されている。

スマートサーチでできる事

  1. 例えば、「Allan Fife」を検索すると、「Allan」と「Fife」両方を含む行が返される(「Allan」と「Fife」が別カラムに存在していても)

    例えば、「Allan Hoge, Chris Fite」はヒット、「Allan Hoge」はヒットしない
  2. 部分一致検索
    例えば、「active」で検索すると、「active」も「activein」も「inactive」ヒット

  3. ダブルクォーテーションで囲った文字列は、1単語扱いとなる
    例えば、「"Allan Fife"」で検索すると「Allan Fife」がヒットし、「Allan is in Fife」にはヒットしない
    DataTables 1.10から追加


結果 : 検索したい文字列をダブルクォーテーションで囲むで解決

例えば
「apple, banana」の結果が欲しい場合、「apple, banana」で検索すると、「apple, banana, orange」と「apple, orange, banana」もヒットする

「"apple, banana"」で検索すると、「apple, banana, orange」だけがヒットする

See the Pen DataTables Search for an exact phrase by AgoPeanuts (@AgoPeanuts) on CodePen.

Posted by Agopeanuts