Foros del Web » Programando para Internet » Javascript »

Funcion para detectar palabras ofensivas introducidas en un Textarea ¿Como se hace?

Estas en el tema de Funcion para detectar palabras ofensivas introducidas en un Textarea ¿Como se hace? en el foro de Javascript en Foros del Web. Hola que tal Estoy realizando un furmulario en el cual existe un textarea y la información introducida se guarda en una base de datos, pero ...
  #1 (permalink)  
Antiguo 14/02/2004, 13:31
 
Fecha de Ingreso: noviembre-2003
Mensajes: 89
Antigüedad: 20 años, 6 meses
Puntos: 0
Funcion para detectar palabras ofensivas introducidas en un Textarea ¿Como se hace?

Hola que tal
Estoy realizando un furmulario en el cual existe un textarea y la información
introducida se guarda en una base de datos,
pero me gustaria detectar las palabras ofensivas u obcenas y entonces rechazar el
mensaje. He visto algo parecido en PHP, y en ASP, pero no domino esos lenguajes,
pero seria bueno en Javascript, en
PHP y ASP vi algo como una lista en la cual estan las malas palabras
y se compara con el texto si hay una en común, pues se lanza
el Error, tal vez en Javascript exista algo parecido o mejor.
Gracias por la ayuda. Hasta Pronto.
  #2 (permalink)  
Antiguo 14/02/2004, 17:53
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
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
  #3 (permalink)  
Antiguo 15/02/2004, 09:22
 
Fecha de Ingreso: noviembre-2003
Mensajes: 89
Antigüedad: 20 años, 6 meses
Puntos: 0
Que tal caricatos.
Gracias por la ayuda.
Olvide mencionar que tampoco domino bien javascript, intente lo
siguiente, pero me da error.
<HTML>
<HEAD>
<TITLE>Detectar Ofensivas</TITLE>
<script language="javascript">
function validaEnviar() {
var malaspalabras = ["pis", "caca"];
var contarTacos = 0;
for (var i = 0; i < malaspalabras.length; i ++)
contarTacos +=document.miformulario.texto.split(malaspalabras[i]).length;
if (contarTacos > 0) alert("Debes lavarte la lengua con jabón");
}
</script>

</HEAD>
<BODY>
<div align="center">
<h1>Insertar un Mensaje</h1>
<br>
<FORM METHOD="POST" ACTION="" name="miformulario">
Texto<br>
<textarea name="texto"></textarea><br>
<INPUT TYPE="button" value="Enviar" onclick="validaEnviar()">
</FORM>
</div>
</BODY>
</HTML>
¿Donde esta el error? o ¿ Que estoy haciendo mal?
Gracias por la ayuda. hasta Pronto
  #4 (permalink)  
Antiguo 15/02/2004, 09:40
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

El error tuyo es no poner "value":

document.miformulario.texto.value .split(malaspalabras[i]).length - 1 ;

El tuyo lo marqué en rojo y el mío en azul.

Luego procura acordarte de lo que te he dicho antes...

ejmplo:
var malaspalabreas = [" pis ", " caca "];

... sobre los espacios en blanco.

Saludos
  #5 (permalink)  
Antiguo 16/02/2004, 08:59
 
Fecha de Ingreso: noviembre-2003
Mensajes: 89
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola caricatos.
Gracias por la ayuda.
Estuve probando mas o menos una hora el código, pero no logre
que funcionara, aqui va el código:
<HTML>
<HEAD>
<TITLE>Detectar Ofensivas</TITLE>
<script language="javascript">
function validaEnviar() {
var malaspalabras = [" pis ", " caca "];
var contarTacos = 0;
for (var i = 0; i < malaspalabras.length; i ++)
contarTacos +=document.miformulario.texto.value.split(malaspal abras[i]).length-1;
if (contarTacos > 0)
alert("Debes lavarte la lengua con jabón");
else
document.miformulario.submit();
}
</script>

</HEAD>
<BODY>
<div align="center">
<h1>Insertar un Mensaje</h1>
<br>
<FORM METHOD="POST" ACTION="mipagina2.html" name="miformulario">
Texto<br>
<textarea name="texto"></textarea><br>
<INPUT TYPE="button" value="Enviar" onclick="validaEnviar()">
</FORM>
</div>
</BODY>
</HTML>

Mi navegador es IE 5.5
No se donde esta el error, debe ser porque no domino Javascript
Gracias por la paciencia y la ayuda.
Hasta Pronto.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:43.