¡¡¡Alguien que me ayude por favor!!!

24/07/2006 - 18:29 por George | Informe spam
Hola,

Estoy haciendo un foro y no deseo que la gente pueda insultarse en el mismo.
Entonces había pensado hacer replace de las palabras que yo no deseara ver en
el foro, pero resulta que si los usuarios escribieran la grosería o lo que
sea de esta manera, por ejemplo AbCd, no haría replace debido a que esta
función es case sensitive...

¿Cómo podría hacer lo que deseo sin tener que insertar todas las posibles
combinaciones? ¿Existe alguna función que no sea Case Sensitive?

Gracias por la ayuda

Preguntas similare

Leer las respuestas

#1 Matías Iacono
24/07/2006 - 18:54 | Informe spam
Salvo que hagas un UCASE, o un LCASE a tu cadena de texto, y compararlas con
mayusculas o minusculas. No te queda otra que meter palabra tras palabra.

Debido a que no se analiza la estructura de la palabra, si no la suma de
caracteres, no es posible controlar TODAS las convinaciones. Podrían
colocarlo con espacios intermedios y tendrías el mismo problema.

Saludos.

Matías Iacono
Microsoft MVP ASP/ASP.net
Orador INETA
"George" escribió en el mensaje
news:
Hola,

Estoy haciendo un foro y no deseo que la gente pueda insultarse en el
mismo.
Entonces había pensado hacer replace de las palabras que yo no deseara ver
en
el foro, pero resulta que si los usuarios escribieran la grosería o lo que
sea de esta manera, por ejemplo AbCd, no haría replace debido a que esta
función es case sensitive...

¿Cómo podría hacer lo que deseo sin tener que insertar todas las posibles
combinaciones? ¿Existe alguna función que no sea Case Sensitive?

Gracias por la ayuda
Respuesta Responder a este mensaje
#2 Dani Castillo
24/07/2006 - 23:02 | Informe spam
podrias usar mas o menos
1) pasar la cadena a mayusculas pero manteniendo en una variable la original
2) haces un bucle para cada palabra prohibida (en mayusculas)

para cada palabra, con instr buscas en la cadena pasada a mayusculas, si
instr te da positivo, eliminas len(palabra) caracteres siguientes tanto de
la original como de la pasada a mayusculas
nota: realmente es juntar left(cadena,instr(cadena,palabra)) &
right(cadena,len(cadena)-instr(cadena,palabra)-len(cadena)+1) mas o menos
eso

deberas hacer un bucle "while instr(cadena,palabra)>0" por si ponen
varias veces la misma palabra ^^

Otra forma seria con expresiones regulares (Regex.Replace ...) que creo que
puede configurarse para no ser case sens. , de todas formas el esquema de
antes sera posiblemente mas rapido :)

de todas formas esas cosas no suelen funcionar , quiero decir, la
primera vez que alguien pone "lechuga" y se la quitas, pasara, pero la
proxima vez pondra "l.e.c.h.u.g.a" o "l3chuga" o "1echuga" , o "lxechuga"
. mil posibilidades para cada palabra... bueno... realmente mas de mil
;)

Mi consejo es que no desesperes con esas cosas, porque o bien usas un foro
moderado (donde cada mensaje, antes de ser publicado ha de ser 'aceptado'
por un moderador... osea por ti ;) o bien usas registro y se lo quitas a
quien insulte (cosa poco practica normalmente) o bien mantienes el foro
abierto pase lo que pase, eliminando si quieres mensajes que no cumplan unas
normas (eso si, avisa desde el principio de las normas en el foro si no
quieres que te tachen de dictador ;) , los sistemas automaticos de eliminar
palabras malsonantes *no* funcionan , nada gana a la inventiva humana a la
hora de decirlas jejeje ;)


"George" escribió en el mensaje
news:
Hola,

Estoy haciendo un foro y no deseo que la gente pueda insultarse en el
mismo.
Entonces había pensado hacer replace de las palabras que yo no deseara ver
en
el foro, pero resulta que si los usuarios escribieran la grosería o lo que
sea de esta manera, por ejemplo AbCd, no haría replace debido a que esta
función es case sensitive...

¿Cómo podría hacer lo que deseo sin tener que insertar todas las posibles
combinaciones? ¿Existe alguna función que no sea Case Sensitive?

Gracias por la ayuda
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida