@eternal_blue

Как создать подстановку с допуском ошибок?

Здравствуйте, пилю свой форум, на странице создания новых сообщений есть инпут, куда человек вводит теги. Задача сделать внизу автодополнение в зависимости от того что человек ввел, как тут, на habr qna. Я реализовал так:
//tag - инпут, куда человек вводит теги. result - div, куда выводятся варианты тегов, на странице находится под инпутом
//result-elem - предлагаемый тег внутри result
tag.addEventListener('input', ()=>{ //при любом изменении инпута тегов благодаря этому событию происходит триггер
    
    if(tag.value.length > 2) { //при вводе больше 2 букв начинается подбор
        result.style.opacity = '1'; //показываем div результатов
        while (result.firstChild) { //очищаем из него предыдущие значения
            result.removeChild(result.firstChild);
        }
        tags.forEach((elem)=>{  //tags - массив тегов вида ['apple','orange','pear'], перебираем методом forEach
            let string = elem; //string принимает значения тега
            let flag = string.includes(tag.value); //если строка string содержит содержимое инпута, то во flag кладется true
            if (flag) { 
                insertElem(elem); //функция, ничего особенного, создает и вставляет элемент p в result с содержимым elem
            }
        });
    } else {
        result.style.opacity = '0'; // если введено меньше 2 символов, убираем result
    }

});

Проверил, все работает. Вопрос в следующем - можно ли в этот алгоритм встроить допускание человеком ошибок? Если введено например "рыьалка", как научить систему понимать, что это тег "рыбалка"?

Upd: На ум сразу же приходит что то вроде подсчета процента совпадений и чего-то такого. Я правильно копаю?
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы