以下是身份证验证代码,想实现验证通过后:点击文本框出生日期、性别,可以自动显示出来,先谢谢了身份证号码:<input type="text" size="20" id="asidinput" onkeyup="this.value=ignoreSpaces(this.value)"  value="" onblur="alert(cidInfo(asidinput.value))" />出生日期:<input type="text"  maxlength="10"  name="sBirthday" style="width: 91px"/>性别:<input type="text"  maxlength="4"  name="ssex" style="width: 41px"/>
  <script type="text/javascript" language="javascript">
  var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"} 
  function cidInfo(sId){
  var iSum=0
  var info=""
  if(!/^\d{17}(\d|x)$/i.test(sId))return "Error:校验失败!";
  sId=sId.replace(/x$/i,"a");
  if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地区!";
  sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
  var d=new Date(sBirthday.replace(/-/g,"/"))
  if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:非法生日!";
  for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
  if(iSum%11!=1)return "Error:非法身份证号!";
  return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
  }
function ignoreSpaces(string) {
    var temp = "";
    string = '' + string;
    splitstring = string.split(" ");
    for(i = 0; i < splitstring.length; i++)
    temp += splitstring[i];
    return temp;
    }
  </script>

解决方案 »

  1.   


    改了两个地方 红字地方 效果实现身份证号码:<input type="text" size="20" id="asidinput" onkeyup="this.value=ignoreSpaces(this.value)" value="" 
    onblur="alert(cidInfo(asidinput.value))" />
    出生日期:<input id="sBirthday" type="text" maxlength="10" name="sBirthday" style="width: 
    91px"/>
    性别:<input id="ssex" type="text" maxlength="4" name="ssex" style="width: 41px"/>  <script type="text/javascript" language="javascript">
      var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"} 
      function cidInfo(sId){
      var iSum=0
      var info=""
      if(!/^\d{17}(\d|x)$/i.test(sId))return "Error:校验失败!";
      sId=sId.replace(/x$/i,"a");
      if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地区!";
      sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
      var d=new Date(sBirthday.replace(/-/g,"/"))
      if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:非法生日!";
      for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
      if(iSum%11!=1)return "Error:非法身份证号!";
           
           document.getElementById("sBirthday").value=sBirthday;
           document.getElementById("ssex").value=(sId.substr(16,1)%2?"男":"女");
      return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
      }
    function ignoreSpaces(string) {
      var temp = "";
      string = '' + string;
      splitstring = string.split(" ");
      for(i = 0; i < splitstring.length; i++)
      temp += splitstring[i];
      return temp;
      }
      </script>
      

  2.   


    改了两个地方 红字地方 效果实现
    身份证号码:<input type="text" size="20" id="asidinput" onkeyup="this.value=ignoreSpaces(this.value)" value="" 
    onblur="alert(cidInfo(asidinput.value))" />
    出生日期:<input id="sBirthday" type="text" maxlength="10" name="sBirthday" style="width: 
    91px"/>
    性别:<input id="ssex" type="text" maxlength="4" name="ssex" style="width: 41px"/>  <script type="text/javascript" language="javascript">
      var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"} 
      function cidInfo(sId){
      var iSum=0
      var info=""
      if(!/^\d{17}(\d|x)$/i.test(sId))return "Error:校验失败!";
      sId=sId.replace(/x$/i,"a");
      if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地区!";
      sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
      var d=new Date(sBirthday.replace(/-/g,"/"))
      if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:非法生日!";
      for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
      if(iSum%11!=1)return "Error:非法身份证号!";
           
           document.getElementById("sBirthday").value=sBirthday;
           document.getElementById("ssex").value=(sId.substr(16,1)%2?"男":"女");
      return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
      }
    function ignoreSpaces(string) {
      var temp = "";
      string = '' + string;
      splitstring = string.split(" ");
      for(i = 0; i < splitstring.length; i++)
      temp += splitstring[i];
      return temp;
      }
      </script>
      

  3.   


    改了两个地方 红字地方 效果实现身份证号码:<input type="text" size="20" id="asidinput" onkeyup="this.value=ignoreSpaces(this.value)" value="" 
    onblur="alert(cidInfo(asidinput.value))" />
    出生日期:<input id="sBirthday" type="text" maxlength="10" name="sBirthday" style="width: 
    91px"/>
    性别:<input id="ssex" type="text" maxlength="4" name="ssex" style="width: 41px"/>  <script type="text/javascript" language="javascript">
      var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"} 
      function cidInfo(sId){
      var iSum=0
      var info=""
      if(!/^\d{17}(\d|x)$/i.test(sId))return "Error:校验失败!";
      sId=sId.replace(/x$/i,"a");
      if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地区!";
      sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
      var d=new Date(sBirthday.replace(/-/g,"/"))
      if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:非法生日!";
      for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
      if(iSum%11!=1)return "Error:非法身份证号!";
           
           document.getElementById("sBirthday").value=sBirthday;
           document.getElementById("ssex").value=(sId.substr(16,1)%2?"男":"女");
      return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
      }
    function ignoreSpaces(string) {
      var temp = "";
      string = '' + string;
      splitstring = string.split(" ");
      for(i = 0; i < splitstring.length; i++)
      temp += splitstring[i];
      return temp;
      }
      </script>