Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/11/2012, 11:28
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Buscar palabra dentro de cadena

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
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>Buscar coincidencias en cadena</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. </head>
  7. <p>
  8. <button onclick="buscar_palabras()">Buscar</button><br />
  9. <textarea rows="3" cols="80" id="texto">El el auto estaba estacionado detrás de la casablanca del perro</textarea>
  10. </p>
  11. function buscar_palabras(){
  12. var texto=document.getElementById('texto').value;
  13. var palabras_reservadas = ['auto', 'casa', 'perro'];
  14. for (i=0; i<palabras_reservadas.length ; i++){
  15. var patt=new RegExp("\\b "+palabras_reservadas[i] +"\\b"); // agregar modificador 'i' para "case sensitive"
  16. var n=texto.match(patt);
  17. if(n != null){
  18. alert("'" + palabras_reservadas[i] + "' existe en la cadena");
  19. }
  20. }
  21. }
  22. </body>
  23. </html>

Salu2
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.