2015-11-26 44 views
-2

即時通訊設法使用簡單的腳本驗證出生號碼,但是這個腳本返回true,即使我輸入一個月超過12天而超過31天,那麼我錯過了什麼?javascript驗證生日

var as = /^[0-9]{6}[-+][0-9]{4}$/; 
var pn=document.forms.kontakt.pnr.value; 
if (as.test(pn)) 
{ 
var year = pn.substr(0,2); 
var month = pn.substr(2,2); 
var day = pn.substr(4,2); 
if (month <= 13 && day <= 32) 
{ 
return true; 
} 
} 
else 
{ 
alert ("Fyll i korrekt personnummer xxxxxx-xxxx"); 
kontakt.pnr.style.background = "red"; 
return false; 
} 
+1

您可能誤解了<= <的使用。你需要的是'<'。 –

+0

只是說明,即使它工作,它不會檢查日期是否真的在時間上有效 – CoderPi

+0

@RahulDesai即使我沒有<它仍然做同樣的事情:( –

回答

0

if/else語句很好,問題可能出現在您的substr或regex中。 我會console.log你的「月」和「日」變量來縮小你的bug。

0
var as = /^[0-9]{6}-[0-9]{4}$/; 
var pn = document.forms.kontakt.pnr.value; 
if (as.test(pn)) { 
var year = pn.substr(0,2); 
var month = pn.substr(2,2); 
var day = pn.substr(4,2); 
if (month > 12 || day > 31) { 
alert("Fyll i korrekt personnummer"); siffror 
kontakt.pnr.style.background = "red"; 
return false; 
} 
else { 
return true; 
} 
} 
else { 
alert("Fyll i personnummer i formatet xxxxxx-xxxx"); 
kontakt.pnr.style.background = "red"; 
return false; 
} 

這是我的解決方案!