簡體   English   中英

即使條件不滿足字符,JavaScript函數中的字符仍會重現false

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

我正在嘗試學習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;
}

首先,問題是您正在使用| 代替|| |是按位或,在這種情況下,通過組合條件的二進制表示形式的位將產生基本上是隨機的結果。通常,您將永遠不需要| ;因此使用||忘記|甚至任何東西。)

其次,使用正則表達式可以使驗證更加容易:

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

也就是說,它必須以( ^ )至少三個字符.{3,}開頭,后跟文字文本@gmail.com ,其后沒有任何字符( $ )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM