Hola desconocido

Hora internet: @ 721

Compleja validacion de email

- [Por Raúl P.]

Esta función la envio Raúl, un visitante del sitio. Desde ya muchas gracias a él.
En ella se hace una validacion compleja y severa sobre una cadena que deberia ser un email.
A continuación les muestro el código de la función, y luego un ejemplo de como usarla.

Archivo: ValidarEmail.asp

<%
'Funcion que comprueba si un e-mail es valido. Devuelve:
' 0 -> si es nulo o esta vacio
' 1 -> Si el e-mail es incorrecto
' 2 -> Si el e-mail es valido

Function Validar_EMail(EMail)

Dim Con

If EMail = "" Then
    Validar_EMail = 0
    Exit Function
End If

EMail = LCase(EMail)

If (Left(EMail, 1) = "." Or Left(EMail, 1) = "@") Then
    Validar_EMail = 1
    Exit Function
End If

If (Right(EMail, 1) = "." Or Right(EMail, 1) = "_" Or _
    Right(EMail, 1) = "@") Then
    Validar_EMail = 1
    Exit Function
End If

Con = 0

For i = 1 To Len(EMail)
    If (Mid(EMail, i, 1)) = "@" Then
       Con = Con + 1
    End If
Next

If Con > 1 Or Con = 0 Then
    Validar_EMail = 1
    Exit Function
End If

Con = 0

For i = 1 To Len(EMail)
    If (Mid(EMail, i, 1)) = "@" Then
       For j = i To Len(EMail)
          If (Mid(EMail, j, 1)) = "." Then
             Con = Con + 1
          End If
       Next
    End If
Next

If Con < 1 Then
    Validar_EMail = 1
    Exit Function
End If

Con = 0

For i = 1 To Len(EMail)
    If (Mid(EMail, i, 1) = ".") Or (Mid(EMail, i, 1) = "@") Then
       If (Mid(EMail, i + 1, 1) = ".") Or (Mid(EMail, i + 1, 1) = "@") Then
          Validar_EMail = 1
          Exit Function
       End If
    End If
Next

For i = 1 To Len(EMail)
    If (Mid(EMail, i, 1) < "a" Or Mid(EMail, i, 1) > "z") And _
       (Mid(EMail, i, 1) < "0" Or Mid(EMail, i, 1) > "9") And _
       Mid(EMail, i, 1) <> "." And Mid(EMail, i, 1) <> "_" And _
       Mid(EMail, i, 1) <> "@" Then
          Validar_EMail = 1
          Exit Function
    End If
Next

Validar_EMail = 2

End Function
%>

Bueno, esta fue toda la funcion que validará los emails que le pasaremos como argumento.
Ahora un corto ejemplo de como funciona y como usarla.

Archivo: verificar.asp

<!-- #Include File="ValidarEmail.asp"-->
<%
if request.form("envio") = "envio" then
   if Validar_EMail(Request.form("correo")) = 0 then response.write "Nulo o Vacio"
   if Validar_EMail(Request.form("correo")) = 1 then response.write "Email inválido"
   if Validar_EMail(Request.form("correo")) = 2 then response.write "Email válido"
end if
%>
<BR>
<FORM METHOD="post" ACTION="verificar.asp">
<INPUT NAME="correo">
<INPUT TYPE="Submit">
<INPUT TYPE="Hidden" NAME="envio" VALUE="envio">
</FORM>

Como se ve en el codigo, la primer linea hace un INCLUDE del archivo ValidarEmail.asp, el cual contiene la función aqui expuesta.
Cuando el Formulario es enviado se llama a la función Validar_EMail() pasandole lo que ingreso el usuario como argumento, y dependiendo de lo que devuelva la función sabremos si es una cadena con forma de email valida o no.

Si devuelve un 0, quiere decir que ningun caracter fue escrito
Si devuelve un 1, quiere decir que que el supuesto email es invalido
Si devuelve un 2, quiere decir que que el supuesto email es correcto.

Espero les sirva, es una funcion muy piola y la tienen lista para usar.





© SoloASP.com.ar - 2001 / 2005. Todos los derechos reservados. soloasp@soloasp.com.ar
Buenos Aires - Argentina. Diseño web y programación por Guido Laghi