// modulo-1
// ----------
var charMap = {
"à": "a",
"á": "a",
"â": "a",
"é": "e",
"è": "e",
"ê": "e",
"ë": "e",
"É": "e",
"ï": "i",
"î": "i",
"ô": "o",
"ö": "o",
"û": "u",
"ù": "u",
"ü": "u",
"ñ": "n"
};
var names = ["série:Aladdin", "personagem:Naruto","paródia:Dragon Ball Z"];
var normalize = function (input) {
$.each(charMap, function (unnormalizedChar, normalizedChar) {
var regex = new RegExp(unnormalizedChar, 'gi');
input = input.replace(regex, normalizedChar);
});
return input;
};
var queryTokenizer = function (q) {
var normalized = normalize(q);
return Bloodhound.tokenizers.whitespace(normalized);
};
var nombres = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: queryTokenizer,
local: $.map(names, function (name) {
// Normalize the name - use this for searching
var normalized = normalize(name);
return {
value: normalized,
// Include the original name - use this for display purposes
displayValue: name
};
})
});
nombres.initialize();
$('#modulo-1').typeahead({
minLength: 1,
hint: false,
highlight: true
}, {
displayKey: 'displayValue',
source: nombres.ttAdapter()
});
// modulo-2
// ----------
var substringMatcher = function(strs) {
return function findMatches(q, cb) {
var matches, substringRegex;
// an array that will be populated with substring matches
matches = [];
// regex used to determine if a string contains the substring q
substrRegex = new RegExp(q, 'i');
// iterate through the pool of strings and for any string that
// contains the substring q, add it to the matches array
$.each(strs, function(i, str) {
if (substrRegex.test(str)) {
matches.push(str);
}
});
cb(matches);
};
};
var states = ["série:Aladdin", "personagem:Naruto","paródia:Dragon Ball Z"];
$('#modulo-2').typeahead({
hint: true,
highlight: true,
minLength: 1
},
{
name: 'states',
source: substringMatcher(states)
});
https://jsfiddle.net/avcurdgy/2/
В модуле-1 почти так, как я хочу, в нем я могу выполнить поиск по словам «серия» или «серия», и это даст мне нужное значение. Но когда я ищу «Наруто», он ничего не возвращает.
Теперь в «modulo-2», когда я ищу «Наруто», он может найти результат, но не игнорирует акценты, если я ищу «серию», он ничего не возвращает.
Мне нужно, чтобы в модуле-1, когда я ищу «Наруто», он находит результат, как в модуле-2 , я пробовал здесь многое в течение нескольких дней, но безуспешно.
Может ли кто-нибудь мне помочь?
Документация typeahead.js: https://twitter.github.io/typeahead.js/examples/
var names = ["série:Aladdin", "personagem:Naruto","paródia:Dragon Ball Z"];
var normalize = function (input) { $.each(charMap, function (unnormalizedChar, normalizedChar) { var regex = new RegExp(unnormalizedChar, 'gi'); input = input.replace(regex, normalizedChar); }); return input; };
var queryTokenizer = function (q) { var normalized = normalize(q); return Bloodhound.tokenizers.whitespace(normalized); };
var nombres = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), queryTokenizer: queryTokenizer, local: $.map(names, function (name) { // Normalize the name - use this for searching var normalized = normalize(name); return { value: normalized, // Include the original name - use this for display purposes displayValue: name }; }) });
// modulo-2 // ---------- var substringMatcher = function(strs) { return function findMatches(q, cb) { var matches, substringRegex;
// an array that will be populated with substring matches matches = [];
// regex used to determine if a string contains the substring q substrRegex = new RegExp(q, 'i');
// iterate through the pool of strings and for any string that // contains the substring q, add it to the matches array $.each(strs, function(i, str) { if (substrRegex.test(str)) { matches.push(str); } });
cb(matches); }; };
var states = ["série:Aladdin", "personagem:Naruto","paródia:Dragon Ball Z"];
$('#modulo-2').typeahead({ hint: true, highlight: true, minLength: 1 }, { name: 'states', source: substringMatcher(states) }); [/code] https://jsfiddle.net/avcurdgy/2/ В модуле-1 почти так, как я хочу, в нем я могу выполнить поиск по словам «серия» или «серия», и это даст мне нужное значение. Но когда я ищу «Наруто», он ничего не возвращает. Теперь в «modulo-2», когда я ищу «Наруто», он может найти результат, но не игнорирует акценты, если я ищу «серию», он ничего не возвращает. Мне нужно, чтобы в модуле-1, когда я ищу «Наруто», он находит результат, как в модуле-2 , я пробовал здесь многое в течение нескольких дней, но безуспешно. Может ли кто-нибудь мне помочь? Документация typeahead.js: https://twitter.github.io/typeahead.js/examples/
Я пытаюсь настроить сценарий Excel для автоматического заполнения этого столбца до последней строки данных и не более того. В разных таблицах, в которых я запускаю сценарий, разное количество строк, поэтому текущий сценарий с жестко...
Я использую typeahead.js для автоматического заполнения названий городов.
Это работает, за исключением случаев, когда есть акцент (например, «Mièges», предложение остановится на «Mie», если я не укажу «è» с акцентом)
То же самое с тире «Maisons...