Поиск и data.json (key insensitive)
У меня в data.json есть вот такая запись
{"name":"Frédérique", "id":"123456789"} Когда ввожу в поле поиска fr то мне спокойно выводит его имя и айди. Но если я хочу вместо fré ввести fre то мне ничего не показывает. Как мне поиграть с этим? Что посоветуете? |
заменять строку fre на регулярку, где символы e,u,o и тд будут меняться на наборы символов.
И соотв искать по регулярке |
Да, тоже подумал про регулярку, но хочу попробовать так что если находит é или è то автоматом реплейсит в точку, так будет находит всё.
|
C точкой не катит, находит даже согласные буквы, что не есть ок.
Буду тыкать дальше |
Не понимаю что там тыкать. Вроде описал уже алгоритм :)
|
|
Хорошо, здесь кроется баг.
Возьмем то что у нас есть такие имена: Frederique, Fréderique, Frèderique Когда я ввожу в поиске fre мне автоматом должны показываться эти три имени. Вот как мне это сделать? $('#SMPsearch').keyup(function() { // value of search field var a = $('#SMPsearch').val(); var searchField = a.replace(/[e]/gi, '.');//вот он console.log(searchField); код код код Как сделать что бы вместо точки он искал e, é, è ? Как это выглядит? |
Всё, решил, получилось.
Фак var searchField = a.replace(/[e]/gi, '[e,é,è]'); // правильно Спасибо! |
В конечном итоге у меня код получился так.
Работает без проблем. Спасибо всем. // value of search field var a = $('#SMPsearch').val(); var searchField = a.replace(/[a]/gi, '[a,à,á,â,ä,å,ą]').replace(/[e]/gi, '[e,è,é,ê,ë,ę]').replace(/[i]/gi, '[i,ì,í,î,ï]').replace(/[o]/gi, '[o,ö,ô,ò,ó]').replace(/[u]/gi, '[u,û,ù,ú,ü]').replace(/[c]/gi, '[c,ç,ć]').replace(/[l]/gi, '[l,ł]').replace(/[n]/gi, '[n,ñ,ń]').replace(/[s]/gi, '[s,š,ś]').replace(/[y]/gi, '[y,ÿ]').replace(/[z]/gi, '[z,ž,ź,ż]'); console.log(searchField); |
Часовой пояс GMT +3, время: 12:51. |