Answer the question
In order to leave comments, you need to log in
Output found results?
I wrote a search in js, but I have no idea how to make this script sort the results found from those that are not suitable for input in the input field
var input, search, pr, result, result_arr, locale_HTML, result_store;
function func() {
locale_HTML = document.body.innerHTML; // сохраняем в переменную весь body (Первоначальный)
}
setTimeout(func, 1000); //ждем подгрузки Jsona и выполняем
function FindOnPage(name, status) {
input = document.getElementById(name).value; //получаем значение из поля в html
if (input.length < 3 && status == true) {
alert('Для поиска вы должны ввести три или более символов');
function FindOnPageBack() { document.body.innerHTML = locale_HTML; }
}
if (input.length >= 3) {
function FindOnPageGo() {
search = '/' + input + '/g'; //делаем из строки регуярное выражение
pr = document.body.innerHTML; // сохраняем в переменную весь body
result = pr.match(/>(.*?)</g); //отсекаем все теги и получаем только текст
result_arr = []; //в этом массиве будем хранить результат работы (подсветку)
var warning = true;
for (var i = 0; i < result.length; i++) {
if (result[i].match(eval(search)) != null) {
warning = false;
}
}
if (warning == true) {
alert('Не найдено ни одного совпадения');
}
for (var i = 0; i < result.length; i++) {
result_arr[i] = result[i].replace(eval(search), '<span style="background-color: #1D2124; opacity: .7;">' + input + '</span>'); //находим нужные элементы, задаем стиль и сохраняем в новый массив
}
for (var i = 0; i < result.length; i++) {
pr = pr.replace(result[i], result_arr[i]) //заменяем в переменной с html текст на новый из новогом ассива
}
document.body.innerHTML = pr; //заменяем html код
}
}
function FindOnPageBack() { document.body.innerHTML = locale_HTML; }
if (status) { FindOnPageBack(); FindOnPageGo(); } //чистим прошлое и Выделяем найденное
if (!status) { FindOnPageBack(); } //Снимаем выделение
}
Answer the question
In order to leave comments, you need to log in
sorted the found results from those not suitable for input in the input field
// input = 'blabla'
array = array.filter(elem => elem.trim().toLowerCase().includes(input.trim().toLowerCase()))
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question