[英]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.