帮帮忙!

解决方案 »

  1.   

    Function CheckCardId(e) 
      arrVerifyCode = Split("1,0,x,9,8,7,6,5,4,3,2", ",") 
      Wi = Split("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2", ",") 
      Checker = Split("1,9,8,7,6,5,4,3,2,1,1", ",") 
       
      If Len(e) < 15 Or Len(e) = 16 Or Len(e) = 17 Or Len(e) > 18 Then 
      CheckCardId= "身份证号共有 15 码或18位" 
      CheckCardId = False 
      Exit Function 
      End If 
       
      Dim Ai 
      If Len(e) = 18 Then 
      Ai = Mid(e, 1, 17) 
      ElseIf Len(e) = 15 Then 
      Ai = e 
      Ai = Left(Ai, 6) & "19" & Mid(Ai, 7, 9) 
      End If 
      If Not IsNumeric(Ai) Then 
      CheckCardId= "身份证除最后一位外,必须为数字!" 
       
      Exit Function 
      End If 
      Dim strYear, strMonth, strDay 
      strYear = CInt(Mid(Ai, 7, 4)) 
      strMonth = CInt(Mid(Ai, 11, 2)) 
      strDay = CInt(Mid(Ai, 13, 2)) 
      BirthDay = Trim(strYear) + "-" + Trim(strMonth) + "-" + Trim(strDay) 
      If IsDate(BirthDay) Then 
      If DateDiff("yyyy",Now,BirthDay)<-140 or cdate(BirthDay)>date() Then 
       
      CheckCardId= "身份证输入错误!" 
      Exit Function 
      End If 
      If strMonth > 12 Or strDay > 31 Then 
      CheckCardId= "身份证输入错误!" 
      Exit Function 
      End If 
      Else 
      CheckCardId= "身份证输入错误!" 
      Exit Function 
      End If 
      Dim i, TotalmulAiWi 
      For i = 0 To 16 
      TotalmulAiWi = TotalmulAiWi + CInt(Mid(Ai, i + 1, 1)) * Wi(i) 
      Next 
      Dim modValue 
      modValue = TotalmulAiWi Mod 11 
      Dim strVerifyCode 
      strVerifyCode = arrVerifyCode(modValue) 
      Ai = Ai & strVerifyCode 
      CheckCardId = Ai 
       
      If Len(e) = 18 And e <> Ai Then 
      CheckCardId= "身份证号码输入错误!" 
      Exit Function 
      End If 
      End Function 
      response.write CheckCardId("528337194801020025") 这个如果返回的是输入的身份证,则表明正确,否则会提示出错...
      

  2.   

    身份证号验证正则表达式 
    梅花雨的脚本
    <SCRIPT      LANGUAGE="javascript">
    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      {alert("输入的数字位数不对!");      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];
                    }
                    else
                    {
                            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;
    }
    isIdCardNo("330103780133103");
    isIdCardNo("330103780123103");
    isIdCardNo("330103197801231030");
    </SCRIPT>
    秋水的
    更健壮的  地区和身份证的关系也判断到  还有性别
    <script>
    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      false;
    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?"男":"女")
    }document.write(cidInfo("380524198002300016"),"<br/>");
    document.write(cidInfo("340524198002300019"),"<br/>")
    document.write(cidInfo("340524197711111111"),"<br/>")
    document.write(cidInfo("34052419800101001x"),"<br/>");
    document.write(cidInfo("220283198011200331"),"<br/>");
    </script>  
      

  3.   

    用这个RegularExpressionValidator然后在validationExpression属性中选择身份证即可...