jsp页面数据验证

时间:2022-02-01 23:32:10

 /**使用方法:
*第1步:拷贝下面的代码到需要校验的页面:
*<script src="../js/DataValidate.js" language="javascript"></script>
*第2步:
*1)对要校验的控件添加需要的校验属性,如:<input type="text" allownull="false" maxlength="13" dtype="tel" des="电话号码">
* 其中allownull,maxlength,dtype,compare,des为需要自己添加的校验属性。
*  allownull取值:true—Input允许为空;false—不允许为空
* maxlength取值:表示Input允许输入的最大长度;
* dtype代表Input只能输入的数据格式,取值:
*       number-数字格式,
*  date-日期格式,
*  datetime-时间格式,
*  tel-电话号码格式,
*  email-电子邮件格式,
*  float-小数
*  xq-刑期
*       age-年龄格式
*       year-日期年份格式
*   integerdigits当dtype=float时使用,表示整数位数,默认为13
* decimaldigits当dtype=float时使用,表示小数位数,默认为2
*   compare当dtype=date时使用,取值:+curdate-大于等于当前日期;-curdate-小于等于当前日期
* sysdate当compare不为空时使用,其值为web服务器的当前时间(可用Tools.getDateString()方法获得),格式为yyyy-mm-dd
*       如:<input type="text" allownull="false" dtype="date" compare="-curdate" sysdate="2006-02-16" des="受理日期">
*第3步:设置提交按钮onClick="checkFormData();"。
*/

/**
* 是否是日期的检查(日期格式为"yyyy-mm-dd")
* 格式:年必须输入四位数且必须在1900年以后;月日时分秒要么输入两个数字,要么输入一个数字;
* @param dateStr 被检查的字符串
* @return true(是日期格式"yyyy-mm-dd"); false(不是日期格式"yyyy-mm-dd")
*/
function isDate(dateStr) {
   var re = /^/d{4}-/d{1,2}-/d{1,2}$/;
   var r = dateStr.match(re);
   if (r == null) {
      return false;
   }
   else {
      var s = dateStr.split("-");
      if (s[0].substring(0,2) < 19 || s[1] > 12 || s[1] < 1 || s[2] > 31 || s[2] < 1) {
         return false;
      }
      if ((s[1] == 4 || s[1] == 6 || s[1] == 9 || s[1] == 11) && s[2] == 31) {//月小
         return false;
      }

      if (((s[0] % 4 == 0) && (s[0] % 100 != 0)) || (s[0] % 400 == 0)) { //是闰年
          if (s[1] == 2 &&  s[2] > 29) {
            return false;
         }
      }
      else {//不是闰年
          if (s[1] == 2 &&  s[2]>28) {
            return false;
         }
      }
   }
   return true;
}
/**
* 是否是日期的检查(日期格式为"yyyy-mm-dd hh:mm:ss")
* 格式:年必须输入四位数且必须在1900年以后;月日时分秒要么输入两个数字,要么输入一个数字;
* @param dateStr 被检查的字符串
* @return true(是日期格式"yyyy-mm-dd hh:mm:ss"); false(不是日期格式"yyyy-mm-dd hh:mm:ss")
*/
function isDateTime(dateStr) {
   dateStr = combChar(dateStr, " ");
   var re = /^(/d{4})/-(/d{1,2})/-(/d{1,2}) (/d{1,2}):(/d{1,2}):(/d{1,2})$/;
   var r = dateStr.match(re);
   if (r == null) {
      return false;
   }
   else {
      var str = dateStr.split(" ");
      var s = str[0].split("-");
      var strTime = str[1].split(":");
      if (s[0].substring(0,2) < 19 || s[1] > 12 || s[1] < 1 || s[2] > 31 || s[2] < 1) {
         return false;
      }
      if ((s[1] == 4 || s[1] == 6 || s[1] == 9 || s[1] == 11) && s[2] == 31) {//月小
         return false;
      }

      if (((s[0] % 4 == 0) && (s[0] % 100 != 0)) || (s[0] % 400 == 0)) { //是闰年
          if (s[1] == 2 &&  s[2] > 29) {
            return false;
         }
      }
      else {//不是闰年
          if (s[1] == 2 &&  s[2]>28) {
            return false;
         }
      }
      if (strTime[0] > 23 || strTime[1] > 59 || strTime[2] > 59 ) {
         return false;
      }
   }
   return true;
}
/**
* 判断日期dateStr1是否小于日期dateStr2的(日期格式为"yyyy-mm-dd")
* 格式:年必须输入四位数且必须在1900年以后;月日要么输入两个数字,要么输入一个数字;
* @param dateStr1 第一个字符串
* @param dateStr2 第二个的字符串
* @return null(dateStr1格式不对或dateStr2格式不对); true(dateStr1 < dateStr2); false(dateStr1 >= dateStr2)
*/
function isBeforeDate(dateStr1, dateStr2) {
   if (!isDate(dateStr1) || !isDate(dateStr1)) {
      return null;
   }
   var s1 = dateStr1.split("-");
   var s2 = dateStr2.split("-");

   //强制转换成数字
   var i=0;
   for (i=0;i<3 ;i++ )
   {
    s1[i]=s1[i]+0;
    s2[i]=s2[i]+0;
   }

   if (s1[0] < s2[0]) {//年小于
      return true;
   }
   else if (s1[0] == s2[0]) {//年相等
      if (s1[1] < s2[1]) {//月小于
         return true;
      }else if (s1[1] == s2[1]) {//月相等
   if (s1[2] < s2[2]) {//日小于
            return true;
         }
      }
   }
   return false;
}
/**
* 判断日期dateStr1是否等于日期dateStr2的(日期格式为"yyyy-mm-dd")
* 格式:年必须输入四位数且必须在1900年以后;月日要么输入两个数字,要么输入一个数字;
* @param dateStr1 第一个字符串
* @param dateStr2 第二个的字符串
* @return null(dateStr1格式不对或dateStr2格式不对); true(dateStr1 = dateStr2); false(dateStr1 != dateStr2)
*/
function isEqualDate(dateStr1, dateStr2) {
   if (!isDate(dateStr1) || !isDate(dateStr1)) {
      return null;
   }
   var s1 = dateStr1.split("-");
   var s2 = dateStr2.split("-");
   if (s1[0] != s2[0]) {//年不相等
      return false;
   }
   else {//年相等
      if (s1[1].charAt(0) == '0') {
         s1[1] = "" + s1[1].charAt(1);
      }
      if (s2[1].charAt(0) == '0') {
         s2[1] = "" + s2[1].charAt(1);
      }
      if (s1[1] != s2[1]) {//月不相等
         return false;
      }
      else {//月相等
         if (s1[2].charAt(0) == '0') {
            s1[2] = "" + s1[2].charAt(1);
         }
         if (s2[2].charAt(0) == '0') {
            s2[2] = "" + s2[2].charAt(1);
         }
         if (s1[2] != s2[2]) {//日不相等
            return false;
         }
      }
   }
   return true;
}
/**
* 判断日期dateStr1是否小于日期dateStr2的(日期格式为"yyyy-mm-dd hh:mm:ss")
* 格式:年必须输入四位数且必须在1900年以后;月日时分秒要么输入两个数字,要么输入一个数字;
* @param dateStr1 第一个字符串
* @param dateStr2 第二个的字符串
* @return null(dateStr1格式不对或dateStr2格式不对); true(dateStr1 < dateStr2); false(dateStr1 >= dateStr2)
*/
function isBeforeDateTime(dateStr1, dateStr2) {
   if (!isDateTime(dateStr1) || !isDateTime(dateStr1)) {
      return null;
   }
   var s1 = dateStr1.split(" ");
   var s2 = dateStr2.split(" ");
   if (isBeforeDate(s1[0], s2[0])) {//年月日小于
      return true;
   }
   else if (isEqualDate(s1[0], s2[0])) {//年月日相等
      var strTime1 = s1[1].split(":");
      var strTime2 = s2[1].split(":");
      if (strTime1[0].charAt(0) == '0') {
         strTime1[0] = "" + strTime1[0].charAt(1);
      }
      if (strTime2[0].charAt(0) == '0') {
         strTime2[0] = "" + strTime2[0].charAt(1);
      }
      if (strTime1[0] < strTime2[0]) {//小时小于
         return true;
      }
      else if (strTime1[0] == strTime2[0]) {//小时相等
         if (strTime1[1].charAt(0) == '0') {
            strTime1[1] = "" + strTime1[1].charAt(1);
         }
         if (strTime2[1].charAt(0) == '0') {
            strTime2[1] = "" + strTime2[1].charAt(1);
         }
         if (strTime1[1] < strTime2[1]) {//分小于
            return true;
         }
         else if (strTime1[1] == strTime2[1]) {//分相等
            if (strTime1[2].charAt(0) == '0') {
               strTime1[2] = "" + strTime1[2].charAt(1);
            }
            if (strTime2[2].charAt(0) == '0') {
               strTime2[2] = "" + strTime2[2].charAt(1);
            }
            if (strTime1[2] < strTime2[2]) {//秒小于
               return true;
            }
         }
      }
   }
   return false;
}
/**
* 判断日期dateStr1是否等于日期dateStr2的(日期格式为"yyyy-mm-dd hh:mm:ss")
* 格式:年必须输入四位数且必须在1900年以后;月日时分秒要么输入两个数字,要么输入一个数字;
* @param dateStr1 第一个字符串
* @param dateStr2 第二个的字符串
* @return null(dateStr1格式不对或dateStr2格式不对); true(dateStr1 = dateStr2); false(dateStr1 != dateStr2)
*/
function isEqualDateTime(dateStr1, dateStr2) {
   if (!isDateTime(dateStr1) || !isDateTime(dateStr1)) {
      return null;
   }
   var s1 = dateStr1.split(" ");
   var s2 = dateStr2.split(" ");
   if (isEqualDate(s1[0], s2[0])) {//年月日相等
      var strTime1 = s1[1].split(":");
      var strTime2 = s2[1].split(":");
      if (strTime1[0].charAt(0) == '0') {
         strTime1[0] = "" + strTime1[0].charAt(1);
      }
      if (strTime2[0].charAt(0) == '0') {
         strTime2[0] = "" + strTime2[0].charAt(1);
      }
      if (strTime1[0] == strTime2[0]) {//小时相等
         if (strTime1[1].charAt(0) == '0') {
            strTime1[1] = "" + strTime1[1].charAt(1);
         }
         if (strTime2[1].charAt(0) == '0') {
            strTime2[1] = "" + strTime2[1].charAt(1);
         }
         if (strTime1[1] == strTime2[1]) {//分相等
            if (strTime1[2].charAt(0) == '0') {
               strTime1[2] = "" + strTime1[2].charAt(1);
            }
            if (strTime2[2].charAt(0) == '0') {
               strTime2[2] = "" + strTime2[2].charAt(1);
            }
            if (strTime1[2] == strTime2[2]) {//秒相等
               return true;
            }
         }
      }
   }
   return false;
}
/*
获得本机当前日期,格式YYYY-MM-DD
*/
function getLocalCurDate()
{
        var fun_dt = new Date();
 var fun_month = eval(1+fun_dt.getMonth());
        var fun_day = fun_dt.getDate();

 if(fun_month < 10) fun_month = "0"+fun_month;
 if(fun_day < 10) fun_day = "0"+fun_day;
 var fun_ds = fun_dt.getFullYear()+"-"+fun_month+"-"+fun_day;

 return fun_ds;
}
/**
* 检测是否是数字(正浮点型)
* @param str 被检查的字符串
* @param inummax整数位数
* @param dnummax小数位数
* @return true; false
*/
function isFloat(str,inummax,dnummax) {
   var Letters = "0123456789";
   var dotNum = 0;
   var dnum = 0;
   var inum = 0;
  
   for (i = 0; i < str.length; i++) {
      var checkChar = str.charAt(i);

      if (Letters.indexOf(checkChar) == -1) {
         if (checkChar == '.') {
            dotNum++;
            if (dotNum > 1) {
               return false;
            }
            continue;
         }
         return false;
      }else if (dotNum==1){
    //小数位数
   dnum++;   
   if (dnum>dnummax){
    return false;
   }
      }else{
    //整数位数
    inum++;
    if (inum>inummax){
    return false;
   }
   }

   }

   return true;
}

/**
* 检测是否是数字(正整型)
* @param str 被检查的字符串
* @return true; false
*/
function isNumber(str) {
   var Letters = "0123456789";
   if(str.length==0)
    return false

    for (i = 0; i < str.length; i++) {

   var checkChar = str.charAt(i);
      if (Letters.indexOf(checkChar) == -1)
         return false;
    }
     return true;
}

//2004年
//校验输入是否是电话号码正确!
function isTel(telStr)
{
 
 var No="0123456789()+-";
 if(telStr.length==0)
 return false;

 for(i=0;i<telStr.length;i++)
   {
    var Checkstr=telStr.charAt(i);
    if(No.indexOf(Checkstr)==-1)
     return false;
   }
 return true;
}

//校验register.email是否正确
function isEmail(strEmail)
{
 if(strEmail.length=0)
 return false;
 if(strEmail.charAt(0)=="."||
  strEmail.charAt(0)=="@"||
  strEmail.indexOf('@',0)==-1||
  strEmail.indexOf('.',0)==-1||
  strEmail.lastIndexOf('@')==
  strEmail.length-1 ||
  strEmail.lastIndexOf('.')==
  strEmail.length-1 )
  return false;
  return true;
}

/**
* 检测是否是英文字母
* @param str 被检查的字符串
* @return true; false
*/
function isEnglish(str) {
   var Letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
   for (i = 0; i < str.length; i++) {
      var checkChar = str.charAt(i);
      if (Letters.indexOf(checkChar) == -1) {
         return false;
      }
   }
   return true;
}
/**
* 检测是否是合法的名字(字母,数字,下划线,且第一个字符不能为数字)
* @param str 被检查的字符串
* @return true; false
*/
function isValidName(str) {
   var Letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
   for (i = 0; i < str.length; i++) {
      var checkChar = str.charAt(i);
      if (Letters.indexOf(checkChar) == -1) {
         return true;
      }
      if (i == 0 && isNumber(checkChar)) {
         return false;
      }
   }
   return false;
}
/**
* 判断字符长度
* @param str 被检查的字符串
* @return 检查字符串的长度
*/
function getStrLength(str) {
    var len = str.length;
    for (i = 0; i < len; i++) {
        if (str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255) {
         len++;
      }
    }
    return len;
}
/**
* 判断字符串是否为空
* @param str 被检查的字符串
* @return true;false
*/
function isNull(str) {
   if (str == null || str == "") {
      return true;
   }
   else {
      return false;
   }
}
/*********************************************
* 功能:删除输入字符串中的空格左边和右边的中英文空格字符串
* 参数:str - 要删除空格的字符串
* 返回值:删除空格后的字符串
**********************************************/
function trim(str)
{
  var tempStr = "";
  var lenth = str.length;
  for(var fun_i=0;fun_i<lenth;fun_i++)
  {
    if(str.charAt(fun_i)!=" "&&str.charAt(fun_i)!=" ")
    {
       tempStr = str.substring(fun_i,lenth);
          break;
    }
  }
  lenth = tempStr.length;
  for(var fun_j=lenth-1;fun_j>=0;fun_j--)
  {
    var dd = tempStr.charAt(fun_j);
    if(dd!=" "&&dd!=" ")
    {
     tempStr=tempStr.substring(0,fun_j + 1);
        break;
    }
  }
  return tempStr;
}
/**
* 合并紧挨着的相同的字符
* @param str 被合并的字符串
* @param strChar 字符
* @return 完成合并后的字符串
*/
function combChar(str, strChar) {
   if (strChar == null || strChar == "") {
      return str;
   }
   var len = str.length;
   var index = 0;//上次匹配的地方
   var isFirst = "false";//第一个字符开始的子串是否与strChar匹配
   for (i = 0; i < len; i++) {
      if (strChar.length > (len - i)) {
         break;
      }
      var strTemp = str.substring(i, i + strChar.length);
      if (strTemp == strChar) {
         if (i == 0) {
            isFirst = "true";
         }
         //如果这次匹配与上次匹配是连续匹配
         if (index == (i - strChar.length)) {
            //如果上次匹配的地方不为0,或者上次匹配的地方是第一个字符,才是连续匹配
            if (index != 0 || isFirst == "true") {
               str = str.substring(0,index) + str.substring(index + strChar.length);
               len = len - strChar.length;
               i = i - strChar.length;
            }
         }
         index = i;
         i = i + strChar.length - 1;
      }
      else {
         index = 0;
      }
   }
    return str;
}

/**
* 用来校验页面上所有的type=text的input类型
* 判断:null、length、type
*/

function checkinput(){
  var obj;
  var oobj;
  var j;
  var value;
  var des;
  var allownull;
  var allowlength;
  var len;
  var type;
  var dtype;
  var comp;
  var compcur;
  var compret;
  var decimaldigits;
  var integerdigits;
    obj = document.getElementsByTagName("input");
     for(j=0;j<obj.length;j++){
        oobj=obj(j)
 type=oobj.type
 if(!(type=="text"||type=="password")){
        continue;
        }

        des=oobj.des;
 if(des==null){
        des="";
        }

        value=oobj.value;
 if(value==null){
        value="";
        }

 //check null
    allownull=oobj.allownull;
         if(allownull!=null){
           if(allownull=="false"){
                 if(value==""){
                    alert(des+"不能为空!");
                        oobj.focus();
                        return false;
                  }
            }
         }

  //check datatype
  dtype=oobj.dtype;
  if(dtype!=null&&value!=""){
     res=true;
            msg="";
            if(dtype=="number"){
    msg=des+"输入格式应该为数字格式!/r/n";
    res=isNumber(value);
            }else if(dtype=="age"){
            //检务保障项目中用来判断输入的年龄是否有效
    if(value<16){
     msg="年龄应该大于16岁!";
     res=false;
    }else if(value>70){
      msg="年龄应该小于70岁!";
      res=false;
     } 
  }
            else if(dtype=="float"){

  decimaldigits=oobj.decimaldigits;//小数位数默认=2
  if (decimaldigits==null||decimaldigits==""){
   decimaldigits=2;
  }
  integerdigits=oobj.integerdigits;//整数位数默认=13
  if (integerdigits==null||integerdigits==""){
   integerdigits=13;
  }
  msg=des+"输入格式应该为小数格式!/r/n"+"整数位数为"+integerdigits+"小数位数为"+decimaldigits+"位";
  res=isFloat(value,integerdigits,decimaldigits);
            }else if(dtype=="date"){
  msg=des+"输入格式应该为日期格式!/r/n例如:2004-10-09";
  res=isDate(value);
                if (res){
                  comp=oobj.compare;//判断两种常规的日期比较方式
                  compcur=oobj.sysdate;//获取系统日期,如果没有则取客户端日期
      if (compcur==null||compcur=="") compcur=getLocalCurDate();

                  if (comp!=null&&comp=="+curdate"){
                  //大于等于当前日期
                    res=isBeforeDate(compcur,value)||isEqualDate(compcur,value);
                    if (!res) {
                      msg=des+"输入值应该大于等于当前日期!";
                    }
                  }else if (comp!=null&&comp=="-curdate"){
                    //小于等于当前日期
                    res=isBeforeDate(value,compcur)||isEqualDate(compcur,value);
                    if (!res) {
                      msg=des+"输入值应该小于等于当前日期!";
                    }
                  }
                }
     }else  if(dtype=="datetime"){
  msg=des+"输入格式应该为时间格式!/r/n例如:2004-10-9 11:30:00";
  res=isDateTime(value);
     }else  if(dtype=="tel"){
  msg=des+"输入格式应该为电话号码格式!/r/n例如:028-85169412";
  res=isTel(value);
     }else  if(dtype=="email"){
  msg=des+"输入格式应该为电子邮件格式!/r/n例如:xiaoxuesong@30san.com"
  res=isEmail(value)
     }else if(dtype=="xq"){
   msg=des+"输入格式应该为YYMMDD,且YY年份不能超过20年,MM月份不能超过12个月,DD日期不能超过31天!/r/n例如:010600一年零6个月"
   res=isXQ(value)
  }else if(dtype=="year"){
   msg=des+"输入格式应该为日期年份格式,年必须输入四位数且必须在1900年以后!/r/n例如:2007";
   res=isYear(value);
  }

        if(!res){
   alert(msg);
   oobj.focus();
            oobj.select();
   return false;
     }
  }
 //check length
        allowlength=oobj.maxlength;
  if (allowlength==null)
  {
   allowlength=oobj.maxLength;
  }
 if(allowlength!=null){
   allowlen=parseInt(allowlength);
   len=getStrLength(value);
   if(!isNaN(allowlen)){
     if(allowlen<len){
        alert(des+"输入长度最多只能为"+allowlength+"个字节("+parseInt(allowlength/2)+"个汉字)!")
  oobj.focus();
  return false;
     }
   }
  }
  //end for
  }
  return true;
}


/**
* 用来校验页面上所有的textarea
* 判断:null、length
*/
function checktextarea(){
  var obj;
  var oobj;
  var jj;
  var value;
  var des;
  var allownull;
  var allowlength;
  var len;
  obj = document.getElementsByTagName("textarea");
  for( jj=0;jj<obj.length;jj++){
     oobj=obj(jj);
     des=oobj.des;
     if(des==null){
     des="";
     }
     value=oobj.value;
     if(value==null){
     value="";
     }

     //check null
     allownull=oobj.allownull;
     if(allownull!=null){
 if(allownull=="false"){
    if(value==""){
       alert(des+"不能为空!")
       oobj.focus();
       return false;
     }
 }
     }

      //check length
      allowlength=oobj.maxlength;
   if (allowlength==null)
  {
   allowlength=oobj.maxLength;
  }
     if(allowlength!=null){
        allowlen=parseInt(allowlength);
 len=getStrLength(value);
 if(!isNaN(allowlen)){
     if(allowlen<len){
    alert(des+"输入长度最多只能为"+allowlength+"个字节("+parseInt(allowlength/2)+"个汉字)!")
  oobj.focus();
  return false;
            }
 }
      }
   }
   return true;
}


/**
* 用来校验页面上所有的select
* 判断:null
*/
function checkselect(){
  var obj;
  var oobj;
  var jj;
  var value;
  var des;
  var allownull;
     obj = document.getElementsByTagName("select");
     for( jj=0;jj<obj.length;jj++){
     //取提示
 oobj=obj(jj);
 des=oobj.des;
 if(des==null){
           des="";
        }
       value="";

        try{
     value=oobj.options[oobj.selectedIndex].value;
 }catch(e){
 }

 if(value==null){
          value="";
        }

 //check null
    allownull=oobj.allownull;
 if(allownull!=null){
      if(allownull=="false"){
     if(value==""){
        alert(des+"不能为空!");
        oobj.focus();
        return false;
      }
              }
        }
    }
    return true;
}

/**
* 用来校验页面上所有的type=text的input、所有的textarea、select
*/
function checkFormData()
{
var res;

   res=checkinput();
   if(!res){
     return false;
   }
  res=checktextarea();
   if(!res){
     return false;
   }
   return checkselect();

}
/**
*通过出生日期计算当前年龄
* 出生日期必须小于当前日期,否则计算出错。
*birthDate出生日期
*/
function getAge(birthDate){
  var curDate = new Date();//当前时间
  var s = birthDate.split("-");
  var birDate = new Date(s[0],s[1]-1,s[2]);
  var byear = birDate.getYear();
  if(byear < 2000) byear = byear+1900;
  var year = curDate.getYear()-byear
  var month = curDate.getMonth()-birDate.getMonth();
  var day = curDate.getDate()-birDate.getDate();
  if((month < 0) || (month==0 && day < 0)){
 year = year-1;
  }
//  var datediff = Math.abs(curDate.valueOf()- birDate.valueOf())/(365*24*60*60*1000);
//  return Math.floor(datediff);
  return year;
}

/**
*数组初始化
*例如:var MyArray= new initArray(17,18,19);
*      for(var i=0; i<MyArray.length; i++) alert(MyArray[i]);
*/
function initArray() {
  this.length = initArray.arguments.length
  for (var i = 0; i < this.length; i++)
    this[i] = initArray.arguments[i];
}

/**
*检查日期的先后顺序
*dateInput为日期input的id字符串构成的数组,排列顺序:从小到大
*调用示例:var MyArray= new initArray("date1","date2","date3");
* checkDateOrder(MyArray);
*/
function checkDateOrder(dateInput){
 //参数验证
 if (dateInput == null)
 {
  return true;
 }

 if (dateInput.length == null)
 {
  return true;
 }

 if (dateInput.length == 1)
 {
  return true;
 }

 var obj1,obj2;
 for (var i=0;i<dateInput.length;i++){
  obj1=document.all(dateInput[i]);
  if (obj1==null) continue;
  if (trim(obj1.value)=="") continue;

  for (var j=i+1;j<dateInput.length;j++){
   obj2=document.all(dateInput[j]);
   if (obj2==null) continue;
   if (trim(obj2.value)=="") continue;

   if (isEqualDate(obj1.value,obj2.value)||isBeforeDate(obj1.value,obj2.value)) break;

   alert(obj2.des+"应大于"+obj1.des);
   return false;
  }
 }
 return true;
}
//校验输入身份证是否正确!
function isIDCard(idStr)
{
 var No="0123456789Xx";
 if(idStr.length==0) return true;
 if(trim(idStr)=="身份不明"||trim(idStr)=="无身份证") return true;
 
 var sgjdm="156";
 try{  
  if (document.all.gjdm.value !="") sgjdm=document.all.gjdm.value;
 }catch(e){  
 }
 
 if (sgjdm=="156")
 {
  
   if(idStr.length!=15&&idStr.length!=18) {
    alert("身份证号码应为15位或18位");
    return false;
   }
   for(i=0;i<idStr.length;i++){
    var Checkstr=idStr.charAt(i);


    if(No.indexOf(Checkstr)==-1){
     alert("身份证号码应为数字,字符 "+Checkstr+" 无效。");
     return false;
     }
   }
 }
 
 return true;
}
//取当月最后一天
function getlastday(month, year) {
      if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) { //是闰年
          if (month == 2) {
            return 29;
         }
      }
      else {//不是闰年
          if (month == 1 ||month == 3 ||month == 5 ||month == 7 ||month == 8 ||month == 10 ||month == 12 ) {
            return 31;
          }else if(month == 2){
           return 28;
          }else{
           return 30;
          }
      }
}

/**
* 是否是日期年份的检查(日期年份格式为"yyyy")
* 格式:年必须输入四位数且必须在1900年以后;
* @param yearStr 被检查的字符串;
* @return true(是日期年份格式"yyyy"); false(不是日期年份格式"yyyy")
*/
function isYear(yearStr) {
   var re = /^/d{4}$/;
   var r = yearStr.match(re);
   if (r == null) {
      return false;
   }
   else {
      var s = yearStr;
      if (s.substring(0,2) < 19 ) {
         return false;
      }
   }
   return true;
}