Que Propones Para Validar El Texto De Una Dirección De Correo?


Objetivo: Que Propones Para Validar El Texto De Una Dirección De Correo?
buenas,

tengo la tarea de validar una dirección de correo, (no si existe o no)
sino que su formato este bien, impidiendo por ejemplo escribir caracteres ilegales.

ideas que se me ocurren:

usar una librería externa jajaja (hola vuott jajajaj)

averiguar el formato de un correo, cuales caracteres son permitidos y cuales no y hacer una subrutina.


ustedes que harían?
alguien tiene algún modulo hecho o clase que se pueda usar o modificar para este fin?

última edición por v3ctor el Miercoles, 15 Julio 2015, 21:56; editado 1 vez
Objetivo: Re: Que Propones Para Validar El Texto De Una Dirección De Correo?
Expresiones regulares (regex). Es lo más confiable y rápido de escribir, pero a costa de la complejidad intrínseca de las regex, que algunos califican como un lenguaje parecido al "chino"

^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$


Hora bien, en gambas esta expresión podemos convertirla en una función que tome como parámetro un string conteniendo el email y que devuelva verdadero o falso si es válido o no respectivamente.

¿Te atreves a realizar la función? Esto puede ser un reto no demasiado complicado, vamos!

Saludos

Perfil MP  
Objetivo: Re: Que Propones Para Validar El Texto De Una Dirección De Correo?
Bueno, como aquí en España pasa de la medianoche, no te quiero dejar sin respuesta durante casi 24 horas, así que aquí tienes la solución:

' usamos el evento lostfocus para comprobar sólo cuando se pierde el foco del textbox
Public Sub TextBox1_LostFocus()

If Not testEmail(TextBox1.Text) Then Message.Info("Email no válido")

End

' la función devuelve True si el email es válido o False si no lo es.
Public Function testEmail(subject As String) As Boolean

Dim regex As New RegExp
Dim pattern As String = "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$"

Return regex.Match(subject, pattern, regex.Caseless)

End



Es importante usar el evento LostFocus de un control TextBox, porque sólo se dispara una vez que el foco sale de ahí (si vuelve a entrar para corregir el email, por ejemplo, volvería a ejecutarse). Te prevengo de usarlo en otro tipo de evento, como el Change (que se dispara cada vez que se cambia el texto) u otro evento muy repetitivo, ya que perderíamos "performance" en nuestra aplicación. La razón es que las regex consumen bastantes ciclos de procesador y hay que ser conservador en ese sentido. Si, ya sé, manías de viejo, pero todo lo que podamos hacer para mejorar una aplicación va sumando y es fundamental al final.

Saludos

Perfil MP  
Objetivo: Re: Que Propones Para Validar El Texto De Una Dirección De Correo?
v3ctor escribió: [Ver mensaje]
jaja (hola vuott jajajaj)


Hola v3ctor !

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4126s (PHP: -81% SQL: 181%)
Consultas SQL: 45 - Debug off - GZIP Activado