Foros del Web » Programando para Internet » Javascript »

validar email

Estas en el tema de validar email en el foro de Javascript en Foros del Web. alguien me podria ayudar a validar un correo electrónico. he estado buscando, pero no he encotrado con un codigo que supla mis necesidades. Tengo un ...
  #1 (permalink)  
Antiguo 23/11/2007, 15:00
 
Fecha de Ingreso: octubre-2007
Mensajes: 83
Antigüedad: 16 años, 7 meses
Puntos: 0
De acuerdo validar email

alguien me podria ayudar a validar un correo electrónico. he estado buscando, pero no he encotrado con un codigo que supla mis necesidades.

Tengo un formulario que tiene varios campos de texto, al final cuando en usuario decide enviar el formulario es donde verifico que los campos de texto contengan informacion, pero no se como hacer para que el correo este bien escrito ([email protected])

les agradezco por el tiempo y ayuda q me puedan brindar
  #2 (permalink)  
Antiguo 23/11/2007, 15:13
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: validar email

Hola robison

En las FAQs tienes un par de códigos, mira a ver si te sirven:

http://www.forosdelweb.com/f13/faqs-...tml#post261417
http://www.forosdelweb.com/f13/faqs-...tml#post283672

Saludos,
  #3 (permalink)  
Antiguo 23/11/2007, 15:51
 
Fecha de Ingreso: octubre-2007
Mensajes: 83
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: validar email

mirando los ejemplos y buscando. he encontrado el evento onBlur que me es muy util, el inconveniente es que en Iexplorer funciona bien porque hago que nuevamente tome el foco pero en firefox no me vuelve el foco a la caja de texto donde escribo el mail.

pongo el javascript
Cita:
function validarEmail(valor)
{


if (/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/.test(valor))
{
return (true);
}
else
{
alert("Direccion de Correo Invalida");
//document.all('mail').focus();
document.form.mail.focus();

//return (false);
}
}
esta es la caja de texto
Cita:
<input name="mail" class="cont2" id="mail" size="40" maxlength="50" onblur="validarEmail(this.form.mail.value);">
  #4 (permalink)  
Antiguo 13/11/2008, 12:59
 
Fecha de Ingreso: noviembre-2008
Mensajes: 21
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: validar email

Les explico una función muy útil en PHP que sirve para comprobar la validez de un correo. En realidad comprueba si una dirección de correo electrónico está bien escrita sintácticamente, dejando de lado las comprobaciones de si ese mail existe o no realmente, que no se pueden hacer tan fácilmente.

Vamos a escribir una función que se llama comprobar_email y recibe la cadena de texto con el email que queremos validar. Si dicho email es correcto desde el punto de vista sintáctico, es decir, si tiene un nombre de usuario, una arroba y una terminación con el nombre de un dominio o subdominio, etc, devolverá un 1, es decir, verdadero. En caso de que el email no esté correctamente escrito, la función devolvería 0, que equivale a falso.

La función en si da por hecho inicialmente que el email es erróneo y realiza una serie de comprobaciones que, si todas responden correctamente, dan por conclusión que el email sí estaba bien escrito. Si alguna de esas comprobaciones no era correcta, no se llegaría al final de las comprobaciones y quedaría el resultado como se ha supuesto en un principio, es decir, como incorrecto.

código de la función

function comprobar_email($email){
$mail_correcto = 0;
//compruebo unas cosas primeras
if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
//miro si tiene caracter .
if (substr_count($email,".")>= 1){
//obtengo la terminacion del dominio
$term_dom = substr(strrchr ($email, '.'),1);
//compruebo que la terminación del dominio sea correcta
if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
//compruebo que lo de antes del dominio sea correcto
$antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
$caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
if ($caracter_ult != "@" && $caracter_ult != "."){
$mail_correcto = 1;
}
}
}
}
}
if ($mail_correcto)
return 1;
else
return 0;
}

Las comprobaciones

En el primer if compruebo que el email tiene por lo menos 6 caracteres (el mínimo), que tiene una arroba y sólo una y que no está colocada ni al principio ni al final.

En el segundo if comprueba que no tiene algunos caracteres no permitidos. Y los restantes hacen comprobaciones de las distintas partes de la dirección de correo, a saber: Que hay un punto en algún lado y que la terminación del dominio es correcta y que el principio de la dirección también es correcto.

Finalmente, se devuelve la variable local utilizada para guardar la validez o incorrección del correo.
  #5 (permalink)  
Antiguo 13/11/2008, 13:18
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: validar email

El mensaje original es de hace hace 1 año. Por favor, no reviváis temas tan antiguos.

Además el foro es de JavaScript, no de PHP.

Saludos,
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 03:35.