![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
18.02.2016, 13:05
|
Интересующийся
|
|
Регистрация: 28.09.2015
Сообщений: 12
|
|
поиск в русской строке вводя английские символы
Собственно вопрос заключается в заголовке темы.
Как реализовать поиск по строке с русскими буквами вводя английские символы, т.е. научить понимать что хочет ввести пользователь.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
19.02.2016, 08:37
|
Интересующийся
|
|
Регистрация: 28.09.2015
Сообщений: 12
|
|
никто так и не ответит? никто не задавался данным вопросом что ли?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
19.02.2016, 08:39
|
Профессор
|
|
Регистрация: 21.12.2012
Сообщений: 869
|
|
Спроси гугл
Или к примеру задать соответствие раскладок русская-английская и при поиске мапить
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
19.02.2016, 10:52
|
Интересующийся
|
|
Регистрация: 28.09.2015
Сообщений: 12
|
|
не отвечает гугл
может как то возможно с помощью словаря?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
19.02.2016, 11:20
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,135
|
|
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
19.02.2016, 11:26
|
Интересующийся
|
|
Регистрация: 28.09.2015
Сообщений: 12
|
|
это конечно хорошо, но мне необходим почти тот же функционал только на сайте. идеальный пример, это сайт 2gis(не реклама). там не важно на какой раскладке вводишь, поисковая строка понимает что хотят найти
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
19.02.2016, 11:58
|
![Аватар для destus](https://javascript.ru/forum/image.php?u=13586&dateline=1454328081) |
Профессор
|
|
Регистрация: 18.05.2011
Сообщений: 1,207
|
|
git_bind,
сделай словарик типо
replacer = {
"q": "й", "w": "ц", "e": "у", "r": "к", "t": "е", "y": "н", "u": "г",
"i": "ш", "o": "щ", "p": "з", "[": "х", "]": "ъ", "a": "ф", "s": "ы",
"d": "в", "f": "а", "g": "п", "h": "р", "j": "о", "k": "л", "l": "д",
";": "ж", "'": "э", "z": "я", "x": "ч", "c": "с", "v": "м", "b": "и",
"n": "т", "m": "ь", ",": "б", ".": "ю", "/": "."
};
и через Str.replace заменяй.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
19.02.2016, 12:05
|
![Аватар для Vlasenko Fedor](https://javascript.ru/forum/image.php?u=27064&dateline=1363177798) |
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
<div id="replace">
<input type="text" class="street edit-state-street" maxlength="50" />
</div>
<script>
replace.oninput = function (e) {
var el = e ? e.target : window.event.srcElement;
if (el.tagName != "INPUT") return;
var replacer = {
"q": "й",
"w": "ц",
"e": "у",
"r": "к",
"t": "е",
"y": "н",
"u": "г",
"i": "ш",
"o": "щ",
"p": "з",
"[": "х",
"]": "ъ",
"a": "ф",
"s": "ы",
"d": "в",
"f": "а",
"g": "п",
"h": "р",
"j": "о",
"k": "л",
"l": "д",
";": "ж",
"'": "э",
"z": "я",
"x": "ч",
"c": "с",
"v": "м",
"b": "и",
"n": "т",
"m": "ь",
",": "б",
".": "ю",
"/": "."
};
var str = el.value;
el.value = str.replace(/[A-z/,.;\'\]\[]/g, function (x) {
return x == x.toLowerCase() ? replacer[x] : replacer[x.toLowerCase()].toUpperCase();
});
};
</script>
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
19.02.2016, 13:33
|
Интересующийся
|
|
Регистрация: 28.09.2015
Сообщений: 12
|
|
спасибо больше! реально полезный код. но у меня теперь возникает вопрос, как быть с английскими словами? объясню наглядно для чего вся эта затея.
имеется таблица, в ней записаны значения:
|имя слоя | источник|
|геоданные 2015 |http://localhost/.....|
|cosmo_tile_2015 |http://localhost/.....|
ну и много другое(порядка 200 шт.)
сейчас поиск реализован с помощью jquery.filtertable
поиск устраивает, но увидев на вышеупомянутом сайте функционал поисковой строки, захотел подобное реализовать.
т.е. вводя "геодан" не сменив раскладку фильтровалось так же, как и вводя на русском "геодан". ну и аналогично с "cosmo"
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
19.02.2016, 13:47
|
![Аватар для destus](https://javascript.ru/forum/image.php?u=13586&dateline=1454328081) |
Профессор
|
|
Регистрация: 18.05.2011
Сообщений: 1,207
|
|
git_bind,
фильтровать сначала по одному, потом попытаться по-другому, если для первого случая неудачно. Допустим вводим utjlfyyst (геоданные) и фильтруем сначала для первого случая, потом для второго. Я не думаю, что в таблице будут записи типа 'utjlfyyst...'
|
|
|
|