我有一列ID(身份证号),有15和18位,我想求一自定义javascript函数GetBrithday(ID),通过这个函数算出出生年月日,出生年月日的格式为yyyy-mm-dd
例如  GetBrithday('215410198101211014')  可以得到1981-01-21
 GetBrithday('440321750306341')  可以得到1975-03-06  特求这个函数,帮忙! 

解决方案 »

  1.   

    function getBirthdatByIdNo(iIdNo)
    {
      var tmpStr="";
      var idDate="";
      var tmpInt=0;
      var strReturn = "";
       iIdNo = trim(iIdNo);
      if((iIdNo.length!=15) &&(iIdNo.length!=18))
      {
        strReturn = "输入的身份证号位数错误";
        return strReturn;
       }  if(iIdNo.length==15)
      {
         tmpStr=iIdNo.substring(6,12);
         tmpStr= "19" + tmpStr;
         tmpStr= tmpStr.substring(0,4) + "-" + tmpStr.substring(4,6) + "-" + tmpStr.substring(6)    return tmpStr;
       }
      else  {
           tmpStr=iIdNo.substring(6,14);
           tmpStr= tmpStr.substring(0,4) + "-" + tmpStr.substring(4,6) + "-" + tmpStr.substring(6)    return tmpStr;
       }
    }
      

  2.   


    function GetBrithday(id){
        var ret = id.substr((id.length == 15 ? 6 : 8), 6);
        return "19" + ret.match(/\d{2}/g).join("-");
    }
      

  3.   


    function GetBrithday(s){
      if(s.length==15) s = "19" + s.substr(6, 6);
      else s = s.substr(6,8);
      var y = s.substr(0,4);
      var m = s.substr(4,2);
      var d = s.substr(6,2);
      return y + "-" + m + "-" + d;  
    }alert(GetBrithday("215410198101211014"))
    alert(GetBrithday("440321750306341"))
      

  4.   

    <script>
    var x;
    var y;
    var x1="";x2="";x3="";
    function a()
    {
    x=sr.value;
    y=x.length;
    if(y!=15 && y!=18)
    {
    alert("输入的身份证号码位数错误!")
    }
    if(y==15)
    {
    x="19"+x.substr(6,6);
    x1=x.substr(0,4);
    x2=x.substr(4,2);
    x3=x.substr(6,2);
    st.value=x1+"-"+x2+"-"+x3;
    }
    if(y==18)
    {
    x=x.substr(6,8);
    x1=x.substr(0,4);
    x2=x.substr(4,2);
    x3=x.substr(6,2);
    st.value=x1+"-"+x2+"-"+x3;
    }
    }


    </script>