Ayuda con switch - case

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

Usuario eliminado 174876

Hola betas,

¿Es correcto el método de validación de emails que estoy utilizando con switch-case?
Lo he estado provando, pero no lo consigo... Así que supongo que algo estaré haciendo mal.

Aquí os dejo con mi código:

Insertar CODE, HTML o PHP:
var email = prompt("Introduce una dirección de correo electrónico.");

switch (email) {
  case (email.lastIndexOf(".com") == -1):
  case (email.lastIndexOf(".net") == -1):
  case (email.lastIndexOf(".org") == -1):
  case (email.lastIndexOf(".es") == -1):
    alert(false);
    break;
  default:
    alert(true);
}

Saludos. :ambivalence:
 
Haz un print de

email.lastIndexOf(".es/com/net") a ver que es lo que te da.
 
No te olvides de corroborar primero si tiene un "@", esencial en toda casilla de correo :encouragement: .

Si querés probá con esta función, a mi me resultó bastante bien en varios sitios donde la utilice.
HTML:
function validarEmail(valor) {
  if (/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i.test(valor)){
   alert("La dirección de email " + valor + " es correcta!.");
  } else {
   alert("La dirección de email es incorrecta!.");
  }
}
 
buenas

lo que pasa es que creo que tienes mal implementado el case, recuerda que lo que esta en el swtich, es lo que evaluará con lo que está en los case, en este caso estas evaluando una cadena de texto con el resultado de una evaluación lógica, por lo tanto nunca coincidiran, y siempre caerá en el default.

lo que deberías hacer es algo como esto:

var email = prompt("Introduce una dirección de correo electrónico.");
var dominio = email.substr(email.lastIndexOf(".") );

switch (dominio) {
case (".com"):
case (".net"):
case (".org"):
case (".es"):
alert(false);
break;
default:
alert(true)
}


Espero te sirva, saludos!!
 
Muchísimas gracias a todos por vuestro reporte.
Pondré en práctica vuestros conocimientos.

Saludos. :distant:
 
Atrás
Arriba