Как в элементе массива найти совпадение
Например есть такой массив: let x = ["hello","world","anything","asdaf"].
Если, в input введено "h", то функция должна найти все элементы, которые начинаются с "h". и так далее, если в input введено "he" то элементы которые начинаются с "he" и плюс выделить совпаденные буквы жирным шрифтом в "out"
<input type="text" class = "input">
<div class = "out">
</div>
let z = document.querySelector(".out")
let y = document.querySelector(".input")
document.querySelector(".input").oninput = function(){
for(i=0;i<x.length;i++){
if(y.value == indexOf(x[i])){
z.innerHTML = x[i]
}
}
}
Ответы (1 шт):
Автор решения: CbIPoK2513
→ Ссылка
Написал вот такую функцию для поиска
let x = ["hello", "world", "anything", "happy", "work", "web"];
function Search(str, arr) {
let reg = new RegExp('^'+str, 'gi'), // Регулярка по поиска с начала строки
res = []; // Будем набирать массив
for(let i = 0; i < arr.length; i++) { // Проходим по всему представленному массиву
if(arr[i].search(reg) != -1) // Если есть совпадение элемента массива по регулярке
res.push(arr[i]); // то добавляем его в массив res
}
return res.length > 0 ? res : null; // По окончанию поиска возвращаем массив найденых совпадений, если нет - то NULL.
}
console.info(Search('h', x));
console.info(Search('wo', x));
console.info(Search('stack', x));