Los caracteres en la función Javascript devuelven falso a pesar de que los caracteres no satisfacen la condición
Frecuentes
Visto 44 equipos
1
Estoy tratando de aprender JavaScript ... Tengo una función como, tomo el campo de identificación de usuario de formato ... que es una dirección de correo electrónico y trato de verificar si coincide con la condición a continuación. Sin embargo, aunque doy el nombre de usuario> 3 y el dominio como gmail.com, sigo recibiendo un retorno falso ... ¿Alguien puede verificar y decirme por qué está entrando en el bucle if, tengo que recortar el texto o algo.
Además, si me puede decir cómo escribir esto de manera efectiva usando jQuery, eso me ayudaría a aprender. Pero si cree que estoy mezclando dos cosas aquí... Mi prioridad es la primera pregunta anterior.
function isValidate(eltt) {
var flag = true;
var upos = eltt.indexOf("@");
var uendpos = eltt.indexOf(".com");
var totlength = eltt.length;
var domain = eltt.slice(upos,totlength);
if ( upos < 3 | domain!="gmail.com" | uendpos=== -1) {
flag=false;
}
return flag;
}
1 Respuestas
1
Primero, el problema es que estás usando |
en lugar de ||
. (La |
es un bit a bit o, que en este caso producirá un resultado básicamente aleatorio al combinar los bits de la representación binaria de sus condiciones. Lo más probable es que nunca necesites |
; así que usa ||
y olvida eso |
incluso hace cualquier cosa por sí mismo.)
En segundo lugar, esta validación sería más fácil con una expresión regular:
if (!eltt.match(/^.{3,}@gmail\.com$/)) {
return false;
}
Es decir, debe comenzar con (^
) al menos tres caracteres .{3,}
, seguido del texto literal @gmail.com
, sin nada después ($
).
Respondido 01 Jul 12, 02:07
Muchas gracias por tu rápida respuesta. - VBJ
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas javascript function dom or haz tu propia pregunta.
or
los condicionales en Javascript son de dos tubos,||
, ni uno,|
. - Jared Farrish