编个日期验证函数

function   isDate(str){  
  var   s   =new   String();  
          var   pattern=/年|月|日|\.|[/]/g;  
          s=   str.replace(pattern,"-");  
           
          var   ss=s.split("-");  
          var   year,month,day;  
          if(ss.length<3){     //             alert("输入出错,输入格式为2004-4-5");        
                  return   false;  
          }  
          if(!(/^([0-9][0-9])$|^(19[0-9][0-9]|20[0-9][0-9])$/.test(ss[0]))){//   alert("年出错,请输入1900-2050之间的年数字");  
                    return   false;  
          }  
          if(!(/^((0[1-9])|[1-9]|10|11|12)$/.test(ss[1]))){//           alert("月份出错");  
                    return   false;  
          }  
  year=parseInt(ss[0]);  
   
  month=parseInt(ss[1]);  
                     
          if(isNaN(parseInt(ss[2])))  
                  return   false;  
          else  
                  day=parseInt(ss[2]);  
          var   max;  
          if(month   ==2){  
                  max=28;  
                  if(((year%10==0)&&(year%40==0))   ||   ((year%10!=0)&&(year%4==0)))   //判断是否闰年  
                          max=29;  
          }  
          else   if((month   ==4)   ||   (month   ==6)   ||   (max==9)   ||   (month   ==11))  
                  max=30;  
          else  
                  max   =   31;  
          if(day<1   ||   day>max){   //         alert("日期出错,请输入范围为1-"+max+"内的整数");  
                  return   false;  
          }  
          return   year+"-"+month+"-"+day;  
  }
posted @ 2008-04-17 19:08  飞跃  阅读(125)  评论(0编辑  收藏  举报