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