Задать вопрос
@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);
  • Вопрос задан
  • 106 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Stepik
    JavaScript с нуля - основы языка и практика для начинающих
    2 недели
    Далее
  • Merion Academy
    Фронтенд-разработчик с нуля
    4 месяца
    Далее
  • Skypro
    JavaScript-разработчик с нуля
    9 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
@dGololobov
начинающий
Привидите строку из input'а и строку по которой вы ищите к одному регистру )
например https://developer.mozilla.org/ru/docs/Web/JavaScri...
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы