Hola heyman:
La teoría es prácticamente igual a la de "buscar y reemplazar" (siempre hay versiones mejores)...
A mi me gusta usar para estos casos el método split (aunque debería ser igual indexOf)...
por ejemplo:
var malaspalabras = ["pis", "caca", "teta", "culo"];
// la idea es tener una lista (array) de las "malas palabras", y luego buscarlas en el texto... y si hay alguna actuar...
function aviso() {
var contarTacos = 0;
for (var i = 0; i < malaspalabras.length; i ++)
contarTacos += texto.split(malaspalabras[i]).length;
if (contarTacos > 0) alert("Debes lavarte la lengua con jabón");
}
Fíjate que tal como las puse pueden ser parte de otra palabra, por ejemplo se colaría "
pis ar", por lo que habría que poner espacios antes y después de las palabras del array de malas palabras.
Espero que te sirva.
Saludos