@Banjamin
Пишу

Как написать регистронезависимый поиск?

Добрый день.
На известном ресурсе посмотрел урок по реализации подсветки списка, исходя из написанного в строке поиска. В уроке не затрагивалась тема создания регистронезависимого поиска, поэтому я попробовал улучшить код, применив toLowerCase() к значению инпута и строке в списке. Результата не дало, мало того, стали всплывать ошибки, например список обновлялся в виде задублированных слов. Посмотрите пожалуйста, где ошибка.

Заранее спасибо.

const input = document.querySelector('.form-control');
const smartSearch = function () {
    const val = this.value.toLowerCase().trim();
    const list = document.querySelectorAll('.item li');
    console.log(val)
    if (val != '') {
        list.forEach((item) => {
            const lowerText = item.innerText.toLowerCase();
            if (lowerText.search(val) == -1) {
                item.classList.add('hide')
                item.innerHTML = item.innerText;
            } else {
                item.classList.remove('hide')
                let str = item.innerText;
                item.innerHTML = markText(str, item.innerText.search(val), val.length)
            }
        })
    } else {
        list.forEach(function (item) {
            item.classList.remove('hide')
            item.innerHTML = item.innerText;
        })
    }
}

const markText = (str, pos, len) => {
    return str.slice(0, pos) + '<mark>' + str.slice(pos, pos + len) + '</mark>' + str.slice(pos + len);

}



input.addEventListener('input', smartSearch);
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ответы на вопрос 1
@dGololobov
начинающий
Привидите строку из input'а и строку по которой вы ищите к одному регистру )
например https://developer.mozilla.org/ru/docs/Web/JavaScri...
Ответ написан
Ваш ответ на вопрос

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

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