laimas,
если работает(сработает) лучше не трогать :) |
рони, ну если ввод к примеру будет таким
' Galaxy samsung ', то шаблон получится такой 'Galaxy| samsung'. |
Цитата:
Не работает, при поиске Samsung, второй вариант что начинается на Galaxy уже не находит |
Цитата:
var s = 'Samsung Galaxy', //в чем ищем v = ' Galaxy samsung ', //пусть ввели так r = new RegExp(v.trim().replace(/\s+/, '|'), 'gi'); //определяем шаблон поиска alert(r.test(v)) //есть совпадение? И если строка в которой ищем будет 'Galaxy Samsung', все равно будет найдено совпадение. PS. рони подправил код, а вы скопировали до правки, проверьте еще раз, может в этом причина. |
Цитата:
Вот залил на тест хост http://mobidor.zzz.com.ua/test.php |
Цитата:
|
Ну какая тайна, разбираем-же пример. не работает, на хостинге можно проверить где я залил
http://mobidor.zzz.com.ua/test.php |
А так:
pattern = new RegExp(pattern.trim().replace(/\s+/g, "|"), "gi"); return arr.filter(function(el) { //return Object.values(el).some(function(val) { return pattern.test(Object.values(el)[0]) //}) }) А отображать и надо одно совпадение, которое начинается с первого введенного в поиске? |
Alexko64,
замените function fnSearch(arr, pattern) { pattern = escapeRegExp(pattern); pattern = new RegExp("(" + pattern.trim().replace(/\s+/g, "|") + ")", "i"); return arr.filter(function(el) { pattern.lastIndex = 0; return pattern.test(el.name) }) }; |
Цитата:
попробуйте найти Galaxy, Samsung note 6 (его там и в помине нет но поиск выдает результат) Добавил RAM для отличий между вариантами. Отображать надо все совпадения которые подходят под шаблон, как в любом поиске |
Часовой пояс GMT +3, время: 20:16. |