Home - ASP - Curso práctico - Capítulo 4 - 1 - 2 - 3 - 4
Curso práctico de ASP (IV)
por Luciano Moreno, del departamento de diseño web de BJS Software.
Ejercicio Resuelto.-
Como ya vimos en capítulos anteriores, aunque VBScript considera todos los datos que maneja como de tipo Variant, asigna a las Como aplicación práctica de las funciones de cadena, vamos a realizar una validación de dirección de e-mail. Como sabemos, la sintaxis válida de cualquier dirección de correo es del tipo:
usuario@servidor.dominio
Donde dominio puede ser com, es, net, etc.
Pues bien, a la vista de dicha sintaxis deberemos comprobar que le dirección tenga una subcadena, un carácter arroba, otra subcadena, un punto y otra subcadena final. Además, por si el usuario ha introducido algún espacio vacío inicial o final sin darse cuenta, vamos a eliminarlos de forma genérica.
Si el campo de formulario de la página inicial es de tipo texto y su atributo NAME en email, el código necesario para la validación lo tenéis en el siguiente listado:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN">
<%@
Language="VBScript"%>
<html>
<head>
<title>Curso práctico de ASP. Validación de
e-mail</title>
</head>
<body>
<%
Dim temporal1, temporal2, email, matriz1, arroba, punto, usuario,
temporal3, servidor, dominio
'Comprobamos que la cadena recogida no es
vacía. Si no lo es, seguimos con la
'validacion. Si lo es, detenemos
la ejecución y volvemos a la página anterior
temporal1 =
Request.Form("email")
If temporal1 = "" Then Error("Debe introducir
una dirección de e-mail")
'Eliminamos posibles espacios al principio y
al final
temporal2 = Trim(temporal1)
'Quitamos posibles
espacios intermedios
email = Replace(temporal1, " ", "")
'Verificamos que la dirección tenga un caracter @
'Si no lo tiene,
detenemos la ejecución y volvemos a la página anterior
arroba = InStr(
1, email, "@", 1 )
If arroba = 0 Then
Error("La
dirección de e-mail debe contener un caracter arroba (@)")
End
If
'Verificamos que la dirección tenga un caracter punto(.)
'Si no lo tiene, detenemos la ejecución y volvemos a la página
anterior
punto = InStr( 1, email, ".", 1 )
If punto = 0 Then
Error("La dirección de e-mail debe contener un caracter
punto (.)")
Else
'Si todo va bien, separamos los
componentes de la dirección de e-mail: usuario, servidor y
dominio
matriz = Split(email, "@", -1,
1)
usuario = matriz(0)
If usuario=""
Then Error("La dirección de e-mail debe contener un nombre de
usuario")
temporal3 = Split(matriz(1), ".", -1,
1)
servidor = temporal3(0)
If
servidor="" Then Error("La dirección de e-mail debe contener un nombre de
servidor")
dominio = temporal3(1)
If
dominio="" Then Error("La dirección de e-mail debe contener un nombre de
dominio")
End If
%>
La dirección de e-mail introducida es
correcta.
<%
Function Error(mensaje)
%>
<script
language="JavaScript">
alert("<%=mensaje%>");
window.history.back();
</script>
<%
End
Function
%>
</body>
</html>
El resultado del código lo tenéis en esta ventana, en la que podéis apreciar la efectividad del mismo.