Форум программистов, компьютерный форум, киберфорум
JavaScript: RegExp
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 17.09.2014
Сообщений: 16
1

Как сделать фильтрацию списка?

17.09.2014, 09:58. Просмотров 2924. Ответов 8
Метки нет (Все метки)


И снова здравствуйте! Помогите, пожалуйста, новичку)) У меня есть список фраз, нужно сделать фильтрацию по вводимому в текстовое поле слову. Обязательно использование регулярных выражений. Сроки поджимают, паника, голова совсем не варит)))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.09.2014, 09:58
Ответы с готовыми решениями:

Как сделать фильтрацию массива?
Есть код, в нём несколько имён, и при вводе определённого имени к примеру chris высвечивается окно...

Как сделать редактирование списка ?
Необходимо в web interface сделать редатирование списка. Хотелось бы чтобы это состояло из...

Как сделать выбранный элемент списка через js?
Мне нужно, чтобы из списка выводился по счёту второй пункт. Что-то наподобие такого кода, только...

Подскажите, пожалуйста, как на основе одного раскрываюшегося списка произвести фильтрацию в другом
Здравствуйте, помогите, пожалуйста! На форме 2 раскрывающихся списка: "Учебник" и "Глава", в...

8
828 / 636 / 100
Регистрация: 20.08.2013
Сообщений: 2,524
17.09.2014, 20:01 2
Javascript
1
2
3
4
// Without regexp
["И снова здравствуйте!", "Помогите, пожалуйста, новичку))", "У меня есть список фраз, нужно сделать фильтрацию по вводимому в текстовое поле слову.", "Обязательно использование регулярных выражений.", "Сроки поджимают, паника, голова совсем не варит)))"].filter(function(s) { return ~s.indexOf("ис") });
// With regexp
["И снова здравствуйте!", "Помогите, пожалуйста, новичку))", "У меня есть список фраз, нужно сделать фильтрацию по вводимому в текстовое поле слову.", "Обязательно использование регулярных выражений.", "Сроки поджимают, паника, голова совсем не варит)))"].filter(function(s) { return s.match(/ис/) });
0
0 / 0 / 0
Регистрация: 17.09.2014
Сообщений: 16
17.09.2014, 21:11  [ТС] 3
Не могли бы Вы объяснить подробнее? это функция, которую нужно в обработчик вставить? То есть то, что указано в квадратных скобках - это то из чего мы выбираем, то, что в кавычках и слешах - это значение, по которому происходит фильтрация, а s - результат фильтрации? Я правильно поняла?
0
828 / 636 / 100
Регистрация: 20.08.2013
Сообщений: 2,524
17.09.2014, 22:11 4
Цитата Сообщение от Abatur Посмотреть сообщение
То есть то, что указано в квадратных скобках - это то из чего мы выбираем
Да, массив фраз.

Цитата Сообщение от Abatur Посмотреть сообщение
что в кавычках и слешах - это значение, по которому происходит фильтрация
Да. В первом случае строка, во втором - регулярное выражение.

Цитата Сообщение от Abatur Посмотреть сообщение
s - результат фильтрации
Нет.
0
Pure Free Digital Ghost
4213 / 1673 / 323
Регистрация: 06.01.2013
Сообщений: 4,287
17.09.2014, 22:13 5
Abatur, не совсем - s - это первый аргумент фильтруещей функции (может, кто понятнее скажет)
А результат фильтрации возвращает всё выражение.
0
0 / 0 / 0
Регистрация: 17.09.2014
Сообщений: 16
17.09.2014, 22:24  [ТС] 6
Не поняла про первый аргумент...

Добавлено через 10 минут
И может ли быть в слешах переменная, допустим, значение текстового поля?
0
413 / 378 / 220
Регистрация: 18.07.2014
Сообщений: 1,259
18.09.2014, 10:33 7
Abatur,

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
<input id="search" />
<button onclick="search();">Поиск</button>
<script>
var search = function () {
    var text = document.getElementById("search").value;
    var expr = new RegExp(text, 'ig');
    var result = ["И снова здравствуйте!", "Помогите, пожалуйста, новичку))", "У меня есть список фраз, нужно сделать фильтрацию по вводимому в текстовое поле слову.", "Обязательно использование регулярных выражений.", "Сроки поджимают, паника, голова совсем не варит)))"].filter(function(elem) {
        return elem.match(expr);
    })
    console.log(result);
}
</script>
1
0 / 0 / 0
Регистрация: 17.09.2014
Сообщений: 16
19.09.2014, 15:42  [ТС] 8
Я запуталась. Хотелось бы попробовать разобраться еще раз. У меня есть список (<ul></ul>), элементами которого являются абзацы текста. Есть поле, в которое нужно вводить текст для поиска. В итоге на странице должны остаться только те абзацы из списка, которые содержат введенный в поле текст, остальные абзацы скрываются. Как это сделать, используя регулярные выражения?

P.S. Простите за обилие дурацких вопросов, я только учусь)))
0
279 / 279 / 62
Регистрация: 28.08.2014
Сообщений: 432
20.09.2014, 20:48 9
Abatur, у Вас уже почти всё есть.
<input id="search" /> - это поле, куда вводить текст.
<button onclick="search();">Поиск</button> - это кнопка, при клике на которую запускается функция search().
Надо только немного подправить саму функцию.
Это оставляем:
Javascript
1
2
var text = document.getElementById("search").value;
var expr = new RegExp(text, 'ig');
Здесь считывается текст из поля ввода и из него делается регулярное выражение.

Теперь нужно считать текст из всех li
Javascript
1
$("li").text()
проверить на совпадение с шаблоном
Javascript
1
$("li").text().search(expr)
И, если совпадений нет (т.е. результат .search(expr) равен -1), спрятать этот кусок текста. Причем так делаем для каждого li:
Javascript
1
2
3
4
5
$("li").each(function() {
  if ($(this).text().search(expr)==-1) {
  $(this).hide();
  }
});
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.09.2014, 20:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Как сделать фильтрацию по edit?
Здравствуйте дорогие форумчане. Прошу Вас помочь создать фильтрацию по Edit. На форумах есть...

Как сделать фильтрацию по тв-параметрам
Есть сайт banknauk.ru На главной фильтры по tv - параметрам: price, lesson, typeofwork в виде...

Как сделать фильтрацию/поиск по бд ?
Имеется форма Wpf. На ней лежит DataGrid с именем grid1. В DataGrid выводится таблица из локальной...

Как сделать фильтрацию в таблицы
Всем привет. У меня есть база в аксесе, DBRgid, Edit и Button. Как мне сделать фильтрацию данных по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.