Validação de e-mails

  • Autor Autor Usuario eliminado 174876
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
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.

Inserir CODE, HTML ou 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.
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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:
Inserir CODE, HTML ou 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 edição:
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/>
 
Voltar
Topo