Поиск по словам
Есть массив строк, есть поле для поиска. Нужно определить есть ли в массиве следующая строка, которую мы впишем в поле. Но есть условие: искать не целиком строку, а слова. Допустим, в массиве есть строка "привет мир". Нужно, чтобы поиск по строке "привет (много пробелов) мир" выдавал true.
|
Neo54213,
поиск и строку разбить на массив слов и тогда вхождение подмассива поиска в массив строки ...или все элементы поиска входят в строку. filter и every |
рони,
спасибо за ответ. Я немного попроще придумал: text = text.replace(/ {2,}/g, ' '); |
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));
|
Цитата:
|
| Часовой пояс GMT +3, время: 21:19. |