Foros del Web » Programando para Internet » Javascript »

Error en validación de eMail

Estas en el tema de Error en validación de eMail en el foro de Javascript en Foros del Web. Hola: Bueno, estaba intentando hacer una validación de un mail con una expresión regular, pero no se qué ocurre que siempre me devuelve false, aunque ...
  #1 (permalink)  
Antiguo 07/05/2010, 04:35
Avatar de Alun  
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 14 años, 11 meses
Puntos: 4
Error en validación de eMail

Hola:

Bueno, estaba intentando hacer una validación de un mail con una expresión regular, pero no se qué ocurre que siempre me devuelve false, aunque el mail esté correcto (es mi mail). Dejo el código, por si me podeis decir dónde está el fallo:

Código Javascript:
Ver original
  1. //.......
  2. //imp_login es el name del formulario
  3. //imapuser es el campo donde hay que introducir el mail
  4.  var CM = new RegExp("/^[A-Za-z_.][A-Za-z0-9_.]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/");
  5.   var CM = new RegExp("^\\w+@\\w+\\.\\w{2,3,4}$");
  6. // De estas dos, solo pongo una en mi script cada vez, pero dejo las dos porque son las que he probado
  7.  
  8.   var M = document.imp_login.imapuser.value;
  9.  
  10.     if (M == ""||M=="[email protected]") {
  11.         //[email protected] es el valor del atributo value del campo
  12.         alert('Introduzca su eMail.');
  13.         document.imp_login.imapuser.focus();
  14.         return false; }
  15.  
  16.      else if(M!=""||M!="[email protected]"){
  17.         alert(CM);
  18.         alert(M+'='+CM.test(M));
  19.         return (CM.test(M));}
  20. //.......

Muchas gracias.
  #2 (permalink)  
Antiguo 07/05/2010, 12:18
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Error en validación de eMail

Hola

A ver que te parece esta validación

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function vMail(ce) {
  5. var okem= ce.email.value;
  6.  
  7. var localOK = /^(([A-Za-z0-9!#$&#37;&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/;
  8. var ipOK = /^\[?[0-9\.]+\]?$/;
  9. var dominoOK = /^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$/;
  10.  
  11. // El email consta de dos partes dividas por @
  12. var email_array = okem.split('@');
  13.  
  14. if (email_array.length < 2 || email_array.length > 2) {
  15. alert("La direcci&#243;n de email 1  ("+ email_array.length +") no es v&#225;lida.");
  16.     document.forms.sendmail.email.focus();
  17.     return (false);
  18.     }
  19.  
  20. // Incorrecto número de caracteres en alguna de las dos partes
  21. if (email_array[0].length  < 1 || email_array[1].length  < 1) {
  22. alert("La direcci&#243;n de email 2 ("+ email_array[0].length +") -- ("+ email_array[1].length +") no es v&#225;lida.");
  23.     document.forms.sendmail.email.focus();
  24.     return (false);
  25.     }
  26.  
  27. var local_array = email_array[0].split('.');
  28. for (i = 0; i < local_array.length; i++)
  29. {
  30. if (!localOK.test(local_array[i])) {
  31. alert("La direcci&#243;n de email 3 ("+ local_array[i] +") no es v&#225;lida.");
  32.     document.forms.sendmail.email.focus();
  33.     return (false);
  34.     }
  35. }
  36.  
  37. // Se revisa si el dominio es una IP. Si no, debe ser un nombre de dominio válido
  38. if (!ipOK.test(okem)) {
  39.  
  40. var dominio_array = email_array[1].split('.');
  41. // Incorrecto número de secciones por exceso o defecto para ser un dominio
  42. if (dominio_array.length < 2 || dominio_array.length > 3) {
  43. alert("La direcci&#243;n de email 4 ("+ dominio_array.length +") no es v&#225;lida.");
  44.     document.forms.sendmail.email.focus();
  45.     return (false);
  46.     }
  47.  
  48. for (i = 0; i < dominio_array.length; i++)
  49. {
  50. if (!dominoOK.test(dominio_array[i])) {
  51. alert("La direcci&#243;n de email 5 ("+ dominio_array[i] +") no es v&#225;lida.");
  52.     document.forms.sendmail.email.focus();
  53.     return (false);
  54.     }
  55.        }
  56. }
  57. else
  58. return (true)
  59. }
  60. </script>
  61. </head>
  62. <body>
  63. <form name="sendmail" action="" method="post" OnSubmit="return vMail(this);">
  64. <input type="text" name="email">
  65. <input type="submit" name="submit" value="Verificar email">
  66. </form>
  67. </body>
  68. </html>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Etiquetas: email, validar
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 18:34.