Я хочу убрать нечувствительность к регистру в функциональности поиска jquery
const query = $(this).val();
console.log(query);
$('.wilipedia-item').each(function () {
let title = $(this).find('.wilipedia-item__title h5').text().toLowerCase();
let description = $(this).find('.wilipedia-item__desc').text().toLowerCase();
if (title.includes(query) || description.includes(query)) {
title = title.replace(query, '<span class="highlight">' + query + '</span>');
description = description.replace(query, '<span class="highlight">' + query + '</span>');
$(this).find('h5').html(title);
$(this).find('.wilipedia-item__desc').html(description);
}
$(this).toggle($(this).find('h5, .wilipedia-item__desc').text().includes(query))
});
});
У меня есть этот код, я применил функцию поиска по заголовку и описанию, но это похоже на то, что я должен преобразовать их в маленькие или большие буквы, тогда это работает, но я хочу убрать чувствительность к регистру, используя индекс of, но я запутался, как это сделать? Есть ли кто-нибудь, кто может мне помочь
Используйте регулярное выражение. Мы будем использовать флаг игнорирования регистра i
. Также не забудьте экранировать поисковый термин, чтобы он был действителен для RegExp.
function escapeRegExp(string) {
return string.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
}
function includes(big, small) {
var reg = new RegExp(escapeRegExp(small), "i");
return (!!big.match(reg))
}
var title = "I am Big strIng";
var query = "STRING";
// do this
console.log(includes(title, query))
// instead of this:
console.log(title.includes(query))