фильтрация элементов списка на основе поисковых запросов пользователя в javascript - PullRequest
1 голос
/ 22 июня 2011

Я фильтрую (показываю и скрываю) набор элементов списка на основе ввода пользователя.проверьте это здесь: http://jsfiddle.net/m5dzG/2/

Вопрос: Попробуйте ввести слово «сравнение», вы увидите, что список скрывается, кроме тех, в которых есть слово «сравнение» вих.пока хорошо ... но если вы нажмете пробел и добавите больше терминов, таких как слово "экстраполированный", которое существует в этой строке, он найдет элементы списка, в которых есть любое из этих слов.То, что я хочу, а не ИЛИ.в основном я хочу показать элемент списка, в котором есть оба этих слова.Потому что, как вы можете себе представить, добавив больше терминов, список становится больше, а не меньше.

Я думаю, что проблема в моем регулярном выражении в этой строке

var search_text = jQuery('#search').val();
var rg= new RegExp('('+$.unique(search_text.split(" ")).join("|")+')',"i");

, любая помощь будет оценена.Спасибо

1 Ответ

1 голос
/ 22 июня 2011

Попробуй это.Это должно сделать строку вроде этого: ^(?=.*?honda)(?=.*?accord).Таким образом, строка должна иметь каждое из членов где-то в строке.

var search_text = jQuery('#search').val();
var rg= new RegExp('^(?=.*?'+$.unique(search_text.split(" ")).join(")(?=.*?")+')',"i");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...