Si estás buscando palabras completas, lo indicado es usar match()
tanto search() como indexOf() te van a resultar en coincidencias,
casablanca -> encuentra casa
automóvil -> encuentra auto
Demo
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <textarea rows="3" cols="80" id="texto">El el auto estaba estacionado detrás de la casablanca del perro
</textarea> function buscar_palabras(){
var texto=document.getElementById('texto').value;
var palabras_reservadas = ['auto', 'casa', 'perro'];
for (i=0; i<palabras_reservadas.length ; i++){
var patt=new RegExp("\\b "+palabras_reservadas[i] +"\\b"); // agregar modificador 'i' para "case sensitive"
var n=texto.match(patt);
if(n != null){
alert("'" + palabras_reservadas[i] + "' existe en la cadena");
}
}
}
Salu2