Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.07.2017, 17:15
Интересующийся
Отправить личное сообщение для Neo54213 Посмотреть профиль Найти все сообщения от Neo54213
 
Регистрация: 03.07.2017
Сообщений: 20

Поиск по словам
Есть массив строк, есть поле для поиска. Нужно определить есть ли в массиве следующая строка, которую мы впишем в поле. Но есть условие: искать не целиком строку, а слова. Допустим, в массиве есть строка "привет мир". Нужно, чтобы поиск по строке "привет (много пробелов) мир" выдавал true.
Ответить с цитированием
  #2 (permalink)  
Старый 22.07.2017, 17:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,132

Neo54213,
поиск и строку разбить на массив слов и тогда
вхождение подмассива поиска в массив строки ...или все элементы поиска входят в строку.
filter и every
Ответить с цитированием
  #3 (permalink)  
Старый 22.07.2017, 18:12
Интересующийся
Отправить личное сообщение для Neo54213 Посмотреть профиль Найти все сообщения от Neo54213
 
Регистрация: 03.07.2017
Сообщений: 20

рони,
спасибо за ответ. Я немного попроще придумал: text = text.replace(/ {2,}/g, ' ');
Ответить с цитированием
  #4 (permalink)  
Старый 22.07.2017, 18:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,132

Neo54213, без учёта регистра или убрать .toLowerCase()
function quest(str,arr)
{
  return arr.filter(function(el) {
  return str.split(/[-\.,\s!]+/).every(function(word) {
  return el.toLowerCase().split(/[-\.,\s!]+/).indexOf(word.toLowerCase()) !== -1
})
})

}
  var arr = ["В голове моей опилки", "Да, да, да. Но хотя там и опилки", "Но кричалки и вопилки, Но кричалки и вопилки", "А также: Шумелки, пыхтелки и сопелки","Сочинию я неплохо иногда."]

alert(quest("в голове опилки",arr));
alert(quest("опилки",arr));
Ответить с цитированием
  #5 (permalink)  
Старый 22.07.2017, 18:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,132

Сообщение от Neo54213
Я немного попроще придумал
ок если строки отличаются только пробелами
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск страниц по ключевым словам stormageddon Events/DOM/Window 5 22.06.2013 21:09
Поиск по первым словам uExpo Общие вопросы Javascript 1 02.08.2011 10:05
Поиск в тексте javascript jQuery 3 31.05.2011 11:40
PagingToolbar и поиск DenQ ExtJS 5 02.11.2010 00:16
Поиск в массиве через JavaScript Noran Общие вопросы Javascript 0 10.08.2008 17:31