hola que tal , tengo una duda realice un script para buscar en una lista de texto palabras , pero solo me marca las palabras en conjunto y no me marca si es solo una palabra que se busca que puedo modificar para que me marque tanto 2 o mas palabras y una sola por busqueda, dejo el codigo.
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script>
var texto="";
function resaltar(){
var encontro=0;
var donde=0;
valo=document.getElementById('tt').value;//caja de texto con id="tt"///
if (valo!=""){
val=valo.split("+");
valor=val.join("|");
reemplazar=RegExp("^("+valor+")$","i");
if(texto==""){texto=document.body.innerHTML};
txt=texto.split(">");
for (x=0;x<txt.length;x++){
desde=(txt[x].indexOf("<")!=-1)?txt[x].indexOf("<"):0;
tempP=txt[x].slice(0,desde);
tempU=txt[x].slice(desde);
tempPx=tempP.split(" ");
for(y=0;y<tempPx.length;y++){
if(tempPx[y].search(reemplazar)!=-1 ){
tempPx[y]="<span style=\u0022background-Color:yellow;\u0022>"+tempPx[y]+"</span>";
encontro+=1;
}
}
tempP=tempPx.join(" ");
for (r=0;r<val.length;r++){
tempR=RegExp(val[r],"i");
if (val[r].indexOf(" ")!=-1 && tempP.search(tempR)!=-1){
tempP=tempP.replace(tempR,"<span style=\u0022background-Color:yellow;\u0022>"+val[r]+"</span>");
encontro+=1;
}
}
txt[x]=tempP+tempU;
}
document.body.innerHTML=txt.join(">");
alert((encontro==0)?"No se encontro la carrera ''"+valor+"''":"Se encontro "+encontro+" carrera");
}
}
</script>