Validación de correos electrónicos

  • Autor Autor Usuario eliminado 174876
  • Fecha de inicio Fecha de inicio
U

Usuario eliminado 174876

Hola amigos del foroBeta,

Quiero validar la dirección de correo electrónico con JavaScript, y para ello quiero que el usuario indique el símbolo "@" junto con las extensiones ".com" o ".es".

Pero tengo problemas con el bucle.

Por favor, alguien podría ayudarme. Muchas gracias.

Aquí os dejo mi código.

Insertar CODE, HTML o PHP:
var email = prompt("Introduzca su dirección de correo electrónico.");
var validar = email.indexOf(("@" && ".com") || ("@" && ".es"));
while (validar === -1) {
   // email;
   prompt("Introduzca una dirección de correo electrónico válida, por favor.\nGracias");
}
var _email = email.toLowerCase();
alert("Su dirección de correo electrónico es: " + _email);

Un saludo, y muchas gracias por vuestro tiempo.
 
Usa expresiones regulares, te va a facilitar la vida


Enviado mediante Tapatalk
 
Como ha dicho el compañero, usa expresiones regulares, seguro que encuentras muchas buscando en Google.
Si quieres una verificación tan sencilla como la que querías poner puedes usar esto:
Insertar CODE, HTML o PHP:
/^\S+@\S+(\.com|\.es)$/i.test( email )
Devuelve TRUE si coincide o FALSE sino.

Y te explico como funciona:
^\S+ Indica que la cadena de texto empieza por uno o más caracteres de cualquier tipo, menos espacios.
@ Le sigue una arroba
\S+ Le sigue uno o más caracteres de cualquier tipo, menos espacios.
(\.com|\.es)$ Y termina en .com o .es

Vamos, que da positivo si escribes: algo@algo.com o .es.
Y no te va aceptar por ejemplo @.com simplemente.


Por otro lado, estas usando incorrectamente el método indexOf.
Le tienes que pasar como primer paŕámetro lo que quieres que encuentre, y solo puede ser una cadena.
Lo que le has pasado ha sido como una asignación/condición
("@" && ".com") || ("@" && ".es") esto en realidad devuelve --> ".com", por lo que indexOf solo va a buscar esa cadena.
 
Última edición:
Tomo nota de ello.
Lo pruebo de nuevo en casa... Y os comento.

Gracias a todos por el aporte. 😛7:
 
Si es para un formulario lo puedes validar con html5:

HTML:
<input type="email" name="email" required/>
 
Atrás
Arriba