Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/05/2010, 12:18
Avatar de Adler
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;" />