none
Validar textbox si contiene @ vb.net RRS feed

  • Pregunta

  • Hola Gente buenas tardes!, alguien sabe como validar un textbox mediante un boton para que contenga "@"?. Lo quiero para que puedan colocar un email y no otra cosa.

    saludos

    lunes, 6 de abril de 2020 14:49

Todas las respuestas

  • Hola Cristian Gomez, 

      

    Gracias por levantar tu consulta en los foros de MSDN. Entendimos su pregunta y vamos a darle seguimiento para buscar la mejor repuesta pertinente al caso. 

      

    Cualquier duda referente a productos Microsoft, puedes consultarnos. Es un gusto informarte. 

    Gracias por usar los foros de MSDN. 

      

      

    Eric Ruiz

     ____________________________ 

      

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft. 

    lunes, 6 de abril de 2020 15:15
    Moderador
  • Imports System.Text.RegularExpressions  
      
    Public Class Form1  
      
        Private Function validarMail(ByVal eMail As String) As Boolean  
           
            Return Regex.IsMatch(eMail, _  
                    "^([\w-]+\.)*?[\w-]+@[\w-]+\.([\w-]+\.)*?[\w]+$")  
        End Function  
      
        Private Sub Button1_Click(ByVal sender As System.Object, _  
                                  ByVal e As System.EventArgs) Handles Button1.Click  
      
            Dim eMail As String  
      
           eMail = TextBox1.Text
      
            If Len(eMail) > 0 Then  
               If validarMail(eMail) = True Then
                   MsgBox("Su email es valido", MsgBoxStyle.Information) 
               else
                  MsgBox("Su email es invalido", MsgBoxStyle.Information) 
               End If 
            End If  
        End Sub  
       
    End Class  


    • Editado DANTE-3D sábado, 11 de abril de 2020 3:59
    sábado, 11 de abril de 2020 3:58
  • Desaconsejo intentar validar el email usando una expresión regular tal como la que te han puesto en la respuesta anterior. Inevitablemente, cualquier expresión de ese tipo señala como no válidos algunos emails que sí que son válidos, porque la normativa que determina qué emails valen es extremadamente compleja. Por ejemplo, la expresión del ejemplo anterior daría como no válido un email que contenga dos símbolos de @, cosa que es legítima siempre que uno de los dos símbolos vaya acompañado de la secuencia de escape pertinente. También rechaza muchos caracteres que son válidos en un email, como por ejemplo los caracteres { y } (de hecho, cuando instalas un servidor Exchange te genera algunas cuentas internas que usan esos caracteres).

    Mentes más sabias que las nuestras han intentado antes escribir una expresión regular que valide correctamente un email, y la expresión resultante ocupa varias líneas de texto (nada tan simple como el "^([\w-]+\.)*?[\w-]+@[\w-]+\.([\w-]+\.)*?[\w]+$" del ejemplo), y aún así hay algunos casos marginales que se le escapan.

    En resumidas cuentas, te recomiendo simplificar el método validarMail de forma que solo tenga esto:

    Return Regex.IsMatch(eMail, "@")

    cosa que por supuesto se puede simplificar usando "Contains" y prescindir de la expresión regular.

    Es preferible que se te "cuele" algún email incorrecto a que le contestes al usuario que el email introducido no es correcto cuando resulta que es un email correctísimo y funciona a la perfección. Esto es tremendamente frustrante para el usuario.

    sábado, 11 de abril de 2020 11:38