I search for the word “i” in the text, but it only shows the first “i” and does not show the rest of “i” I want you to show me the whole text though Help me please
const searchItem = () => {
const source = "Lorem ipsum dolor sit amet consectetur adipisicing elit."
const searchDate = "i";
for (let i = 0; i < source.length; i++) {
let res = source.search(searchDate);
if (res > 0) {
document.getElementById("demo").innerHTML = res;
} else if (res < 0) {
document.getElementById("demo").innerHTML = "No results found";
}
}
}<button onclick="searchItem()">Try it</button> <p id="demo"></p>
Advertisement
Answer
You can use String#indexOf with the fromIndex argument to continuously search for the string.
const searchItem = () => {
const source = "Lorem ipsum dolor sit amet consectetur adipisicing elit."
const searchDate = "i";
const indexes = [];
let i, prev = 0;
while((i = source.indexOf(searchDate, prev)) !== -1){
indexes.push(i);
prev = i + searchDate.length;
}
if (indexes.length > 0) {
document.getElementById("demo").innerHTML = indexes;
} else {
document.getElementById("demo").innerHTML = "No results found";
}
}<button onclick="searchItem()">Try it</button> <p id="demo"></p>