
25.01.2019, 12:38
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,138
|
|
laimas,
если работает(сработает) лучше не трогать 
|
|

25.01.2019, 12:40
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
рони, ну если ввод к примеру будет таким
' Galaxy samsung '
, то шаблон получится такой
'Galaxy| samsung'
.
|
|

25.01.2019, 12:58
|
Интересующийся
|
|
Регистрация: 17.04.2018
Сообщений: 26
|
|
Сообщение от рони
|
laimas,
если работает(сработает) лучше не трогать
|
Не повезло)
Не работает, при поиске Samsung, второй вариант что начинается на Galaxy уже не находит
|
|

25.01.2019, 13:01
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Alexko64
|
второй вариант что начинается на Galaxy уже не находит
|
Что-то какая-то тайна покрытая мраком, ну не может быть такого.
var s = 'Samsung Galaxy', //в чем ищем
v = ' Galaxy samsung ', //пусть ввели так
r = new RegExp(v.trim().replace(/\s+/, '|'), 'gi'); //определяем шаблон поиска
alert(r.test(v)) //есть совпадение?
И если строка в которой ищем будет 'Galaxy Samsung', все равно будет найдено совпадение.
PS. рони подправил код, а вы скопировали до правки, проверьте еще раз, может в этом причина.
Последний раз редактировалось laimas, 25.01.2019 в 13:10.
|
|

25.01.2019, 13:10
|
Интересующийся
|
|
Регистрация: 17.04.2018
Сообщений: 26
|
|
Сообщение от laimas
|
Что-то какая-то тайна покрытая мраком, ну не может быть такого. 
var s = 'Samsung Galaxy', //в чем ищем
v = ' Galaxy samsung ', //пусть ввели так
r = new RegExp(v.trim().replace(/\s+/, '|'), 'gi'); //определяем шаблон поиска
alert(r.test(v)) //есть совпадение?
И если строка в которой ищем будет 'Galaxy Samsung', все равно будет найдено совпадение.
|
Лучше один раз увидеть чем 100 раз услышать )
Вот залил на тест хост
http://mobidor.zzz.com.ua/test.php
Последний раз редактировалось Alexko64, 25.01.2019 в 13:16.
|
|

25.01.2019, 13:11
|
Интересующийся
|
|
Регистрация: 17.04.2018
Сообщений: 26
|
|
Сообщение от laimas
|
PS. рони подправил код, а вы скопировали до правки, проверьте еще раз, может в этом причина.
|
Момент...
|
|

25.01.2019, 13:14
|
Интересующийся
|
|
Регистрация: 17.04.2018
Сообщений: 26
|
|
Ну какая тайна, разбираем-же пример. не работает, на хостинге можно проверить где я залил
http://mobidor.zzz.com.ua/test.php
Последний раз редактировалось Alexko64, 25.01.2019 в 13:17.
|
|

25.01.2019, 13:31
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
А так:
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])
//})
})
А отображать и надо одно совпадение, которое начинается с первого введенного в поиске?
Последний раз редактировалось laimas, 25.01.2019 в 13:36.
|
|

25.01.2019, 13:40
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,138
|
|
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)
})
};
|
|

25.01.2019, 13:42
|
Интересующийся
|
|
Регистрация: 17.04.2018
Сообщений: 26
|
|
Сообщение от laimas
|
А так:
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])
//})
})
А отображать и надо одно совпадение, которое начинается с первого введенного в поиске?
|
Не работает. Перезалил тест, посмотрите. Тееперь там все плохо.
попробуйте найти Galaxy, Samsung note 6 (его там и в помине нет но поиск выдает результат)
Добавил RAM для отличий между вариантами.
Отображать надо все совпадения которые подходят под шаблон, как в любом поиске
|
|
|
|