Foros del Web » Programando para Internet » Javascript »

Ayuda con validación de Email

Estas en el tema de Ayuda con validación de Email en el foro de Javascript en Foros del Web. Saludos amigos, tengo esta sección de código que no esta haciendo lo que debería, imagino que tiene una parte mal pero no se cual será, ...
  #1 (permalink)  
Antiguo 31/10/2008, 09:26
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Ayuda con validación de Email

Saludos amigos, tengo esta sección de código que no esta haciendo lo que debería, imagino que tiene una parte mal pero no se cual será, verán, si la persona no escribe en el campo de e-mail, se despliega la alerta , si no pone el @ se despliega la otra alerta , pero si pone cualquier tontera como sdjbfs@, no se despliega la tercer alerta de que no es válido , para que tengan que poner al menos d[email protected]. Gracias por la ayuda.

Código HTML:
function Validar(form)
{
if (form.Nombre.value == "")
{ alert("Por favor ingrese su nombre"); form.Nombre.focus(); return; }

if (form.Email.value == "")
{ alert("Por favor ingrese su dirección de e-mail"); form.Email.focus(); return; }
else { 
if (form.Email.value.indexOf('@') == -1) 
{alert ("Debes colocar una \"Dirección de Email\" válida"); form.Email.focus();
return false;
    pos1 = sDir.indexOf('@', 0);
    pos2 = sDir.indexOf('.', 0);
    bOk = bOk && (pos1 > 0);
    bOk = bOk && (pos2 != -1);
    bOk = bOk && (pos1 < pos2 - 1);
    bOk = bOk && (pos2 < sDir.length - 1);
    if (!bOk){
     alert("Dirección de correo inválida");
     form.Email.focus();
     return false;}
    } 
return;
}
  #2 (permalink)  
Antiguo 31/10/2008, 09:37
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Ayuda con validación de Email

mira en la última página de las FAQ´s que hay un validador de email

Saludos
__________________
Si quieres puedes y si puedes debes. Imposible is nothing!!!
  #3 (permalink)  
Antiguo 31/10/2008, 10:02
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Respuesta: Ayuda con validación de Email

Hola matak, fijate que ya traté de complementar mi código con el que sale ahi pero no me funciona. queda así:

Código HTML:
<script LANGUAGE="JavaScript">

function Validar(form)
{
var okem= ce.email.value;

var localOK = /^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&*+/=?^_{|}~\.-]{0,63})|(\[^(\\|\)]{0,62}\))$/;
var ipOK = /^[?[0-9.]+]?$/;
var dominoOK = /^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$/;

var email_array = okem.split('@');

if (form.Nombre.value == "")
{ alert("Por favor ingrese su nombre"); form.Nombre.focus(); return; }

if (email_array.length < 2 || email_array.length > 2) {
alert("La dirección de email 1  ("+ email_array.length +") no es válida.");
       document.forms.sendmail.email.focus();
       return (false);
    }

// Incorrecto número de caracteres en alguna de las dos partes
if (email_array[0].length  < 1 || email_array[1].length  < 1) {
alert("La dirección de email 2 ("+ email_array[0].length +") -- ("+ email_array[1].length +") no es válida.");
       document.forms.sendmail.email.focus();
       return (false);
    }

var local_array = email_array[0].split('.');
for (i = 0; i < local_array.length; i++)
{
if (!localOK.test(local_array[i])) {
alert("La dirección de email 3 ("+ local_array[i] +") no es válida.");
       document.forms.sendmail.email.focus();
       return (false);
    }
}

// Se revisa si el dominio es una IP. Si no, debe ser un nombre de dominio válido
if (!ipOK.test(okem)) {

var dominio_array = email_array[1].split('.');
// Incorrecto número de secciones por exceso o defecto para ser un dominio
if (dominio_array.length < 2 || dominio_array.length > 3) {
alert("La dirección de email 4 ("+ dominio_array.length +") no es válida.");
       document.forms.sendmail.email.focus();
       return (false);
    }

for (i = 0; i < dominio_array.length; i++)
{
if (!dominoOK.test(dominio_array[i])) {
alert("La dirección de email 5 ("+ dominio_array[i] +") no es válida.");
       document.forms.sendmail.email.focus();
       return (false);
    }
        }
}
else
return (true)
} 

if (form.Domicilio.value == "")
{ alert("Por favor ingrese su domicilio"); form.Domicilio.focus(); return; }

if (form.Telefono.value == "")
{ alert("Por favor ingrese su número de teléfono"); form.Telefono.focus(); return; }

if (form.Empresa.value == "")
{ alert("Por favor ingrese el nombre de su empresa"); form.Empresa.focus(); return; }

if (form.NumeroTarjeta.value == "")
{ alert("Por favor ingrese los números de su tarjeta de crédito"); form.NumeroTarjeta.focus(); return; }

if (form.Codigo.value == "")
{ alert("Por favor ingrese el código de su tarjeta de crédito"); form.Codigo.focus(); return; }

if (form.NombreTitular.value == "")
{ alert("Por favor indique el nombre del titular de la tarjeta de crédito"); form.NombreTitular.focus(); return; }

if (form.Email.value.indexOf('@', 0) == -1 ||
form.Email.value.indexOf('.', 0) == -1)
{ alert("Dirección de e-mail inválida"); form.Email.focus(); return; }

form.submit();
}

</script> 
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:19.