Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/04/2012, 17:19
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: validar email de formulario

Bueno, te explico, el código que puse es solamente como implementar la validación de una dirección de correo utilizando expresiones regulares y test() en javascript

La aplicación de eso a un formulario sería asi, te aclaro además que estoy mofdificando tu sistema porque es poco eficiente, imaginá que ponen un espacio en blanco en "nombre", el valor de la cadena ya no seria 0, por lo tanto pasaría la validación.
Asi mismo es importante eliminar cualquier código html que te sea pasado en los campos

Aplicado a un form quedaría asi

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.  
  7. <style type="text/css">
  8. /*<![CDATA[*/
  9.  
  10. .boton{
  11. background-image: url(boton.png);
  12. width: 30px;
  13. height: 15px;
  14. border: none;
  15. background-color: transparent;
  16. color: transparent;
  17. }
  18.  
  19. label{
  20. width: 150px;
  21. display: inline-block;
  22. }
  23.  
  24. /*]]>*/
  25. <script type="text/javascript">
  26.  
  27. function validar(){
  28. var nombre = document.getElementById('nombre').value;
  29. var email = document.getElementById('email').value;
  30. var email2 = document.getElementById('email2').value;
  31. var formato = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
  32.  
  33. // validamos si el campo nombre está vacío o no
  34. nombre = nombre.replace(/(<([^>]+)>)/ig,""); // quitás posible código html
  35. nombre = nombre.replace(/^\s+/g,'').replace(/\s+$/g,'');// limpias espacios en blanco al inicio y final del nombre
  36. if(nombre == ''){
  37. alert('Ingrese su nombre')
  38. return false;
  39. }
  40.  
  41. var v_email = formato.test(email);
  42.  
  43. if((v_email != true)||(email == "")){
  44. alert('Email no válido');
  45. return false;
  46. }
  47.  
  48. var v_email2 = formato.test(email2);
  49.  
  50. if((v_email2 != true)||(email2 == "")){
  51. alert('Email2 no válido');
  52. return false;
  53. }
  54.  
  55. /// Si no hubo ningún error, el form se procesa
  56.  
  57. alert('gracias ' + nombre);
  58.  
  59. }
  60.  
  61. </script>
  62. </head>
  63. <div>
  64. <form action="#" onsubmit="return validar();">
  65. <label for="nombre">Nombre: </label><input type="text" value="" id="nombre" name="nombre" /><br />
  66. <label for="email">Email: </label><input type="text" value="" id="email" name="email" /><br />
  67. <label for="email2">Email 2: </label><input type="text" value="" id="email2" name="email2" /><br />
  68. <input type="submit" class="boton" value="-" />
  69. </form>
  70. </div>
  71. </body>
  72. </html>

Finalmente, si bien javascript puede mejorar la usabilidad del form por parte del cliente, una validación segura requiere ser hecha con un lenguaje del servidor, como php

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.