⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 check.js

📁 ajax+asp的留言簿
💻 JS
字号:
var obj=null;
function createObj()
{
  if(window.XMLHttpRequest)
    return new XMLHttpRequest();
  if(window.ActiveXObject)
  {
     var keys=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP.6.0","Microsoft.XMLHttp"];
     var o;
     for(var i=0;i<keys.length;i++)
     {
        try
        {
          o=new ActiveXObject(keys[i]);
          return o;
        }
        catch(e)
        {}
     }
  }
}
function getInfo(Code)
{
  var url="read.asp?idcode="+Code+"&ts="+escape(new Date().toString());
  obj=createObj();
  if(obj)
  {
    obj.open("get",url,true);
    obj.onreadystatechange=function()
    {
      if(obj.readyState==4)
      {
        if(obj.status==200)
        {
          parseXML(obj.responseXML,Code);
        }
        else
          alert("有错误发生,状态为:"+obj.status);
      }
    }
    obj.send(null);
  }
  else
    alert("创建对象失败!"); 
}
function errHanlder(err,Code)
{
   if(err.length==1)
   {
      switch(err.firstChild.nodeValue.toString())
      {
         case "1":
           alert("行政区划代码错误!");
           return true;
         case "2":
           alert("'"+Code+"'行政区划代码不存在!");
           return true;
         default:
           alert("发生未知道的错误!");
           return true;
      }
   }
   return false;
}
function parseXML(root,Code)
{
   var err=root.getElementsByTagName("errcode");
   if(errHanlder(err,Code))
     return;
   document.getElementById("Pro").value=root.getElementsByTagName("p")[0].firstChild.nodeValue;
   document.getElementById("City").value=root.getElementsByTagName("c")[0].firstChild.nodeValue;
   document.getElementById("Location").value=root.getElementsByTagName("l")[0].firstChild.nodeValue;
}
function CheckIDCard(IdCode) 
{
  var StrNumber=IdCode.value;
  //判断身份证号码格式函数
  //公民身份号码是特征组合码,
  //排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码

 //身份证号码长度判断
  if(StrNumber.length<15||StrNumber.length==16||StrNumber.length==17||StrNumber.length>18)
  {
     alert("填写的身份证号码长度不正确,请重新填写!");
     IdCode.focus();
     return false;
  }
  //身份证号码最后一位可能是超过100岁老年人的X.X也可以代表是阿拉伯数字10的意思
  //所以排除掉最后一位数字进行数字格式测试,最后一位数字有最后一位数字的算法
 
  var Ai;
  if(StrNumber.length==18)
  {
    Ai = StrNumber.substring(0,17);
  }
  else
  {
    Ai =StrNumber.substring(0,6)+"19"+StrNumber.substring(6,9);//把2位的年补全为4位的
  }
  //调用数字判断函数IsNumeric()
  if(IsNumeric(Ai)==false)
  {
     alert("身份证号码数字字符串不正确,请重新填写!");
     IdCode.focus();
     return false;
  }
  var strYear,strMonth,strDay,strBirthDay;
  strYear = parseInt(Ai.substr(6,4),10); //注意这里指定了10进制转换,原因可以baidu找下原因
  strMonth = parseInt(Ai.substr(10,2),10) ;//注意这里指定了10进制转换,要不为01-09时会为0
  strDay = parseInt(Ai.substr(12,2),10);//注意这里指定了10进制转换,要不为01-09时会为0
  //调用日期判断函数IsValidDate()
  if (IsValidDate(strYear,strMonth,strDay)==false)
  {
     alert("身份证号码"+Ai+"日期格式年份"+strYear+"月份"+strMonth+"日"+strDay+"不正确,请重新填写!");
     IdCode.focus();
     return false;
  }  
  getInfo(StrNumber.substring(0,6));//调用AJAX获取服务器上的数据
  document.getElementById("BirthDay").value=strYear+"-"+strMonth+"-"+strDay; //生日
  var sex=parseInt(Ai.charAt(Ai.length-1))%2;//奇数为男,偶数为女
  document.getElementById("sex"+sex).checked=true;//性别
}

//数字判断函数IsNumeric()
function IsNumeric(oNum) 
{ 
  var strP=/^\d+$/; 
  return strP.test(oNum);
}

//有效年份判断函数IsValidYear()
function IsValidYear(psYear)
{
    var sYear = new String(psYear);

    if(psYear==null)
    {
      alert("身份证号码出生日期中年份为Null,请重新填写!");
      return false;
    }
    if(isNaN(psYear)==true)
    {
       alert("身份证号码出生日期中年份必须为数字,请重新填写!");
       return false;
    }
    if(sYear == "")
    {
       alert("身份证号码出生日期中年份为空,请重新填写!");
       return true;
    }

    if(sYear.match(/[^0-9]/g)!=null)
    {
       alert("身份证号码出生日期中年份必须为0-9之间的数字组成,请重新填写!");
       return false;
    }

    var nYear = parseInt(sYear,10);

    if((nYear < 0) || (9999 < nYear))
    {
       alert(nYear +"身份证号码出生日期中年份必须为正常的正整数,请重新填写!");
       return false;
    }
    return true;
}

//有效月份判断函数IsValidMonth()
function IsValidMonth(psMonth)
{
    var sMonth = new String(psMonth);

    if(psMonth==null)
    {
        return false;
    }

    if(isNaN(psMonth)==true)
    {
        return false;
    }

    if(sMonth == "")
    {
        return true;
    }

    if(sMonth.match(/[^0-9]/g)!=null)
    {
        return false;
    }

    var nMonth = parseInt(sMonth,10);

    if((nMonth < 0) || (12 < nMonth))
    {
        return false;
    }

    return true;
}

//有效日判断函数IsValidDay()
function IsValidDay(psDay)
{
    var sDay  = new String(psDay);

    if(psDay==null)
    {
        return false;
    }

    if(isNaN(psDay)==true)
    {
        return false;
    }

    if(sDay == "")
    {
        return true;
    }

    if(sDay.match(/[^0-9]/g)!=null)
    {
        return false;
    }

    var nDay = parseInt(psDay, 10);

    if((nDay < 0) || (31 < nDay))
    {

   return false;
    }

    return true;
}

//有效日期判断函数IsValidDate()
function IsValidDate(psYear, psMonth, psDay)
{
    if(psYear==null || psMonth==null || psDay==null)
    {
        return false;
    }

    var sYear  = new String(psYear);
    var sMonth = new String(psMonth);
    var sDay   = new String(psDay);

    if(IsValidYear(sYear)==false)
    {
        return false;
    }

    if(IsValidMonth(sMonth)==false)
    {
        return false;
    }

    if(IsValidDay(sDay)==false)
    {
        return false;
    }

    var nYear  = parseInt(sYear,  10);
    var nMonth = parseInt(sMonth, 10);
    var nDay   = parseInt(sDay,   10);

    if(sYear=="" &&  sMonth=="" && sDay=="")
    {
        return true;
    }

    if(sYear=="" || sMonth=="" || sDay=="")
    {
        return false;
    }
   
    if(nMonth < 1 || 12 < nMonth)
    {
        return false;
    }
    if(nDay < 1 || 31 < nDay)
    {
        return false;
    }

    if(nMonth == 2)
    {
        if((nYear % 400 == 0) || (nYear % 4 == 0) && (nYear % 100 != 0))
        {
            if((nDay < 1) || (nDay > 29))
            {
                return false;
            }
        }
        else
        {
            if((nDay < 1) || (nDay > 28))
            {
                return false;
            }
        }
    }
    else if((nMonth == 1)  ||(nMonth == 3)||(nMonth == 5)||(nMonth == 7)||(nMonth == 8)||(nMonth == 10)||(nMonth == 12))
    {
        if((nDay < 1) || (31 < nDay))
        {
            return false;
        }
    }
    else
    {
        if((nDay < 1) || (30 < nDay))
        {
            return false;
        }
    }
    return true;
} 


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -