javascript验证生日

时间:2015-11-26 20:21:56

标签: javascript validation

我试图用一个简单的脚本来验证出生数字但是这个脚本返回true,即使我输入一个月超过12天和超过31,所以我错过了什么?

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

2 个答案:

答案 0 :(得分:0)

if / else语句没问题,问题可能出在你的substr或regex中。 我会在console.log中记录你的“月”和“日”变量来缩小你的bug。

答案 1 :(得分: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;
 } 

这是我的解决方案!