2012-10-17 30 views
1

對於這個作業,我必須編寫一個JavaScript代碼來驗證出生年份大於1870且小於當前年份加上一個我如何組合它們以顯示相同的錯誤消息?如何驗證出生年份?

function isYearofBirthValid(birth) { 
    "use strict"; 
    var alert = ""; 
    if(birth.length < 1870 && birth.length > 2013) { <---- this part? 
    alert("invalid year"); 
    return false; 
    } 
    return true; 
} 
+4

什麼類型是參數出生? –

+0

不是你的問題的答案,但如果你想避免最大年份的硬編碼,你可以使用'new Date()。getFullYear()+ 1'而不是'2013'。 –

回答

1

試試這個if語句來代替:

function isYearofBirthValid(birth) { 
    if(birth < 1870 || birth > 2013){ 
     alert("invalid year"); 
     return false; 
    } 
    return true; 
} 

或者,如果你真的想查找明年是什麼

function isYearofBirthValid(birth) { 
    if(birth < 1870 || birth > new Date().getFullYear()+1){ 
     alert("invalid year"); 
     return false; 
    } 
    return true; 
} 

然後調用函數像這樣

var valid = isYearofBirthValid(1978); //valid = true 
+0

'&& birth> new Date()。getFullYear()+ 1'? – Ian

+1

一個值永遠不能小於1870,並且會同時大於2013,所以這個條件永遠是錯誤的。 – Guffa

+0

@Guffa在發佈之前編輯過。 – Ian

3

您應該使用或運營商(||)而不是運營商(&&)。出生日期不能少於1870年,同時也不能超過2013年。

此外,我不認爲你想檢查價值的長度,但價值本身。

if (birth < 1870 || birth > 2013)