Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/05/2014, 08:22
gdasoft
 
Fecha de Ingreso: septiembre-2011
Mensajes: 116
Antigüedad: 12 años, 7 meses
Puntos: 8
Filtrar contenido String

Buenas tardes,

Tengo un foro en el cual hay usuarios que en el mensaje además de exponer sus preguntas y respuestas también ponen números de teléfono.

¿Cómo puedo hacer un tratamiento de estas cadenas para detectar cual contiene un teléfono (fijo o móvil) y remplazarla por un texto que yo elija?

Actualmente utilizo una función para filtrar URLs, que ahora tengo que adaptar para números de teléfono.

Código:
	Function filtra_string(byval str)
		Dim comienzo, strurl
		
		Do while (instr(str,"http://")>0) or (instr(str,"www.")>0)  
			strurl = ""
			'Calculamos la pos. del comienzo de la URL
			comienzo = instr(str,"http://")
			if comienzo = 0 then
				comienzo = instr(str,"www.")
			End if													
			 
			'Construimos la URL detectada
			Do while (mid(str, comienzo, 1) <> " ") and (comienzo <> len(str) + 1)
				strurl = strurl + mid(str, comienzo, 1)
				comienzo = comienzo + 1
			Loop 
			'y la reemplazamos en la cadena original
			str = replace(str,strurl,"[contenido bloqueado]")
			'vamos a por la siguiente en caso que exista
		Loop
		 
		filtra_string = str
	 
	End Function
Tengo que tener en cuenta que los números de teléfono los pueden haber insertado en los siguientes formatos dentro de la cadena:
  • 6XXXXXXXX
  • 6XX.XXX.XXX
  • 6XX XXX XXX
  • 6XX XX XX XX
  • 93 XXX XX XX
  • 93XXXXXXX
  • 93X XXX XXX
  • 93X.XXX.XXX

Dado que la casuistica es variable no acabo de dar con la formula para acabar de contemplar dichos casos.


Quisiera que quedar de la siguiente manera:

Texto original:

Cita:
Hola, me llamo Fuckencio y me gusta mucho. Llamame al 666 666 666. Gracias a todos
Texto tratado:

Cita:
Hola, me llamo Fuckencio y me gusta mucho. Llamame al [contenido bloqueado]. Gracias a todos
Gracias en adelante.

Un saludo

Última edición por gdasoft; 21/05/2014 a las 08:41