lunr.jsを使用しています。
以下のこのJavascriptコード
- 最初の検索からクエリ パラメータを取得します
- バインディング + 文字をスペースに置き換えます
- 次の検索のために、変更されたクエリを検索フィールドに保存します
- 次に、最終的に変更されたクエリを使用して検索します
var query = getUrlParameter('q');
var queryWithoutPlus = query.replace(/\+/g, " ");
searchField.value = queryWithoutPlus
index.search(queryWithoutPlus);
そのため、クエリ パラメータ文字列は次のようにtest+ABCD+Test++Test2+-Test+-Test+Test
なり、コードはクエリ パラメータの + 文字q
をスペースに置き換えて、ユーザーに結果を適切に表示しますが、検索文字列は次のようになります。
「テスト+テスト-テスト」
現在の結果
「テストテスト-テスト」
私は期待するだろう
「テスト+テスト-テスト」
次のようなtempQueryを使用して、クエリを数回続けて変更しようとしました
var tempQuery = query.replace(/\+\+/g, " -");
var queryWithoutPlus = tempQuery.replace(/\+\-/g, " -");
しかし、これは残りの+文字ではうまくいかず、気分が悪いので、助けが必要です.
正しい正規表現を使用するために要約するだけですか (それが何であれ、アドバイスを歓迎します)、または lunr.js でクエリパラメーターを使用するためのより良い方法がありますか?