javascript 出生日期和身份证判断大全

  if(document.form1.csrq.value==""){

  alert("请填写出生日期!");

  document.form1.csrq.focus();

  return false;

  }

  if(document.form1.csrq.value==""){

  alert("请填写出生日期!");

  document.form1.csrq.focus();

  return false;

  }else{

  if(document.form1.csrq.value.length!=8){

  alert("出生日期必须为8位!");

  document.form1.csrq.focus();

  return false;

  }

  if(document.form1.sfzh.value.length==18){

  var sfzh =document.form1.sfzh.value;

  if(document.form1.csrq.value!=sfzh.substring(6,14)){

  alert("出生日期与身份证号不一致!");

  document.form1.csrq.focus();

  return false;

  }

  }

  if(document.form1.sfzh.value.length==15){

  var sfzh =document.form1.sfzh.value;

  if(document.form1.csrq.value!='19'+sfzh.substring(6,12)){

  alert("出生日期与身份证号不一致!");

  document.form1.csrq.focus();

  return false;

  }

  }

  }

  if(!isIdCardNo(document.form1.sfzh.value)){

  document.form1.sfzh.focus();

  return false;

  }

  function isNN(num){

  var badChar ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //大写字母

  badChar += "abcdefghijklmnopqrstuvwxyz"; //小写字母

  badChar += "0123456789"; //数字

  badChar += " "+" ";//半角与全角空格

  badChar += "`~!@#$%^&()-_=+]\\|:;\"\\'<,>?/";//特殊符号

  var c;

  //for(var i=0;i<name.length;i++){//依次判断name中的字符

  c=num.charAt(0);//取出num中的第1个字符

  if(badChar.indexOf(c) != -1){ //如果当前字符在badChar中找到了匹配字符,说明它不是汉字

  return false;

  } else{

  return true;

  }

  }

  function isIdCardNo(num)

  {

  // if (isNaN(num)) {alert("输入的不是数字!"); return false;}

  var len = num.length, re;

  if (len == 15){

  re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);

  }else if (len == 18){

  re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);

  }else if (isNN(num)){

  return true;

  }else {

  alert("如果是军官号请输入完整,例如:某军官证号为政字第123456号;如果是身份证号请检测您输入的位数,必须为15位或18位。");

  return false;

  }

  var a = num.match(re);

  if (a != null)

  {

  if (len==15)

  {

  var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);

  var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];

  }

  if (len == 18)

  {

  var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);

  var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];

  }

  if (!B) {alert("输入的身份证号 "+ a[0] +" 里出生日期不对!"); return false;}

  }

  return true;

  }