Buscar en Google

Busca en Todo Vb-Net

Búsqueda personalizada

lunes, 15 de octubre de 2012

Validar correo electrónico

Validar correo electrónico


Normalmente se nos presenta el inconveniente de saber si la dirección de correo electrónico que están escribiendo nuestros usuarios esta en un formato valido o no, para este fin el proceso a realizar es, la validacion de las partes básicas de  un correo electrónico, tal como una @ un . (Punto) y un dominio consecuente
Para poder lograr esta validacion usaremos una expresión regular, en vb.net


Espacio de nombres:

Imports System.Text.RegularExpressions


Función


  Public Function validar_Mail(ByVal sMail As String) As Boolean
        ' retorna true o false   
     Return Regex.IsMatch(sMail, _
               "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-  
               9-]+)*(\.[a-z]{2,4})$")
  End Function



Llamado a la funcion la cual puede ser desde el evente leave de el textbox deseado

 If validar_Mail(LCase(TxtMail.Text)) = False Then
     MessageBox.Show("Dirección de correo electronico no valida,   
     el correo debe tener el formato: nombre@dominio.com, " & _
     " por favor seleccione un correo valido", "Validación de   
     correo electronico", MessageBoxButtons.OK, 
     MessageBoxIcon.Exclamation)
     TxtMail.Focus()
     TxtMail.SelectAll()
End If



Saludos!
Y como siempre dudas o comentarios son bien recibidos 


14 comentarios:

  1. Pero como hacen paara controlar la longitud del texto....??

    ResponderEliminar
    Respuestas
    1. En el caso del correo electronico, desconozco si los servidores tienen un limite del nombre... ahora si lo que tú deseas es controlar o condicionar la condicion de una cadena.. puedes usar LEN.

      sintaxis

      Len(MICadena)

      Eliminar
    2. excelente gracias

      Eliminar
    3. Otra Opción sería la propiedad MaxLength del TextBox

      Eliminar
  2. Gracias por tu aporte y ayudarnos a muchos a resolver inquietudes que tenemos sobre vb.net .... probe tu codigo y esta muy bueno, pero siempre la curiosidad mata al gato y googleando me encontre esta funcion que funciona igual que la tuya, pero con mucho menos codigo, la posteo para aquellos igual que yo, buscan eficientar sus aplicaciones... espero no te moleste:

    Try
    'Creamos nuestro objeto, el constructor recive la cadena como parametro
    Dim mail As New System.Net.Mail.MailAddress(TextBox1.Text)
    'Al crear nuestro objeto evalua la cadena, y si es correcta no se produce
    'ningun error
    MessageBox.Show("Correo valido")
    Catch ex As Exception
    'En caso de que el formato de la cadena sea incorrecto nos produce una exepcion
    'del tipo FormatException, ni necesidad tenemos que escribir el mensaje de error
    'simplemente lo obtenemos de la exepcion
    MessageBox.Show(ex.Message)
    End Try

    la encontre en este blog: http://tips-de-programacion-vb.blogspot.com/2010/01/validar-que-una-direccion-de-email.html

    ResponderEliminar
    Respuestas
    1. Wichortiz. Muy buena ambas, ya que con la de Cesar Lopez nos da la opción de editar nuestro mensaje. Pero la que tu has comentado Excelente.

      Eliminar
    2. Este comentario ha sido eliminado por el autor.

      Eliminar
    3. Tengo un formulario el cual habilita un boton siempre y cuando, todos los textboxs existentes cumplan con el tipo de dato y largo maximo.
      Como puedo implementar esa funcion a mi codigo?



      Private Sub BtnCuentaNueva_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCuentaNueva.Click
      tamañoMaximo()
      If TxtRUT.Text.Length < 12 Then
      MsgBox("El RUT debe tener 12 caracteres")
      ElseIf TxtNumPuerta.TextLength < 4 Then
      MsgBox("El Numero de Puerta debe tener 4 digitos")
      ElseIf TxtNuevaCedula.TextLength < 8 Then
      MsgBox("La cédula debe tener 8 digitos")
      ElseIf TxtSucursal.TextLength < 3 Then
      MsgBox("El ID de la sucursal debe tener 3 digitos")
      End If
      mensaje = "¿Esta seguro de que desea crear esta cuenta?"
      textoMsgBox = "Cuenta creada"
      advertencia(titulo, mensaje, textoMsgBox)
      limpiar()

      Eliminar
  3. ESPERO Y ME RESPONDA ALGUUIEN ESTO PARA SER UNA PRACTICA ESCOLAR ESTA MUY BIEN PERO ESTA MAL POR EJEMPLO SI PONGO ERIK@GI.CIM NO ME MARCA ERROR DIGAMOS QUE ME EQUIBOQUE AL INTRODUCIR VARIAS LETRA Y PUSE OTRA EN LUGAR DE HOTMAIL.COM PUSE HOT.CIM ESO ESTA MAL Y NO ME MARCA ERROR COMO PUEDO HACER PARA ARREGLAR ESTO POR FAVOR ESPERO UNA RESPUESTA GRACIAS

    ResponderEliminar
  4. Yo cree una lista de dominios en sql server para validar esa parte del correo por ejemplo:
    hotmail.com
    hotmail.es
    outlook.com
    outlook.es
    yahoo.com
    yahoo.com.mx
    yahoo.es
    hotmail.co.uk
    hotmail.fr
    hotmail.it
    hotmail.cl
    hotmail.co.jp
    yahoo.fr
    yahoo.de
    yahoo.it

    ResponderEliminar