
19/03/2007, 07:55
|
 | | | Fecha de Ingreso: marzo-2006
Mensajes: 139
Antigüedad: 19 años, 1 mes Puntos: 0 | |
Re: Validacion de mail en ASP Estimado Prueba con esta función que ocupo es mucho mas detallada y el mail que tu escribiste lo da como válido.
Código:
Function ValidaMail(email)
'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
If(email)="" Then
ValidaMail=0
exit function
End if
dim partes, parte, i, c
'rompo el email en dos partes, antes y después de la arroba
partes = Split(email, "@")
if UBound(partes) <> 1 then
'si el mayor indice del array es distinto de 1 es que no he obtenido las dos partes
ValidaMail = 1
exit function
end if
'para cada parte, compruebo varias cosas
for each parte in partes
'Compruebo que tiene algún caracter
if Len(parte) <= 0 then
ValidaMail = 1
exit function
end if
'para cada caracter de la parte
for i = 1 to Len(parte)
'tomo el caracter actual
c = Lcase(Mid(parte, i, 1))
'miro a ver si ese caracter es uno de los permitidos
if InStr("._-abcdefghijklmnopqrstuvwxyz", c) <= 0 and not IsNumeric(c) then
ValidaMail = 1
exit function
end if
next
'si la parte actual acaba o empieza en punto la dirección no es válida
if Left(parte, 1) = "." or Right(parte, 1) = "." then
ValidaMail = 1
exit function
end if
next
'si en la segunda parte del email no tenemos un punto es que va mal
if InStr(partes(1), ".") <= 0 then
ValidaMail = 1
exit function
end if
'calculo cuantos caracteres hay después del último punto de la segunda parte del mail
i = Len(partes(1)) - InStrRev(partes(1), ".")
'si el número de caracteres es distinto de 2 y 3
if not (i = 2 or i = 3) then
ValidaMail = 1
exit function
end if
'si encuentro dos puntos seguidos tampoco va bien
if InStr(email, "..") > 0 then
ValidaMail=0
exit function
end if
ValidaMail = 2
End Function
Espero te sirva,
Saludos.
__________________ -.No Sueñes tu Vida, Vive tus Sueños.- |