Javascripts 中的字符函数是 ret false,即使字符不满足 if 条件

Chars in Javascripts function returing false even though charcters do not satisify if condition

本文关键字:字符 不满足 if 条件 ret 函数 Javascripts false      更新时间:2023-09-26

我正在尝试学习JavaScript...我有这样的功能,我采用格式用户 id 字段...这是一个电子邮件地址,并尝试检查它是否符合以下条件。然而,即使认为我给用户名>3 和域作为 gmail.com,我仍然得到错误的返回......有人可以检查并让我知道为什么它会进入 if 循环,我是否必须修剪文本或其他东西。

另外,如果你能告诉我如何使用jQuery有效地编写它,这将有助于我学习。但如果你认为我在这里混合了两件事......我的首要任务是上面的第一个问题。

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;
}

首先,问题是你使用的是|而不是||。 (|是按位 OR,在这种情况下,通过组合条件的二进制表示的位,将产生基本上随机的结果。 很有可能,你永远不需要|;所以使用||,忘记|甚至自己做任何事情。

其次,使用正则表达式进行此验证会更容易:

if (!eltt.match(/^.{3,}@gmail'.com$/)) {
  return false;
}

也就是说,它必须以(^)开头,至少三个字符.{3,},后跟文字文本@gmail.com,后面没有任何东西($)。