javascript date 验证yyyy/MM/dd yyyy-MM-dd

来源:互联网 发布:mac ai英文版变中文版 编辑:程序博客网 时间:2024/05/21 04:21

  1. //验证日期格式为 yyyy/MM/dd 或 yyyy-MM-dd  
  2. //验证日期格式为 yyyy/MM/dd  
  3. //验证日期格式为 yyyy-mm-dd 只需改 reg  \/ 为 -  split("/") 为 split("-");  
  4.   
  5. function checkDate(theDate){  
  6.   var reg = /^\d{4}\/((0{0,1}[1-9]{1})|(1[0-2]{1}))\/((0{0,1}[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1}))$/;  
  7. //小于10都需要加0  
  8. //var reg = /^\d{4}\/((0[1-9]{1})|(2[0-2]{1}))\/((0[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1}))$/;  
  9.   
  10. var reg2 = /^\d{4}-((0{0,1}[1-9]{1})|(1[0-2]{1}))-((0{0,1}[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1}))$/;  
  11.   var result=true;  
  12.   if(!reg.test(theDate) && !reg2.test(theDate))  
  13.     result = false;  
  14.   else{  
  15.    // var arr_hd=theDate.split("/");  
  16.    var arr_hd;  
  17.    if(theDate.indexOf("/") != -1){  
  18.        arr_hd=theDate.split("/");  
  19.    }else if(theDate.indexOf("-") != -1){  
  20.        arr_hd=theDate.split("-");  
  21.    }  
  22.     var dateTmp;  
  23.     dateTmp= new Date(arr_hd[0],parseFloat(arr_hd[1])-1,parseFloat(arr_hd[2]));  
  24.     //alert(arr_hd[0]+" "+parseFloat(arr_hd[1])-1 +"  "+parseFloat(arr_hd[2]));  
  25.    // alert("dateTmp: "+dateTmp);  
  26.     if(dateTmp.getFullYear()!=parseFloat(arr_hd[0])  
  27.        || dateTmp.getMonth()!=parseFloat(arr_hd[1]) -1  
  28.         || dateTmp.getDate()!=parseFloat(arr_hd[2])){  
  29.         result = false  
  30.     }  
  31.   }  
  32.   return result;  
  33. }  
  34. //alert("checkresult: "+checkDate("2001/05/30"));  
  35. var a="2010-8-9";  
  36. // alert("replace method:  "+a.replace(/-/g, "/"));  
  37. //a=a.replace(/-/g,"/");  
  38. //alert(a);  
  39. //将日期 2010-8-9转换为 2010-08-09  
  40.  if(a.indexOf("-") != -1){  
  41.      var ab = a.split("-"3);  
  42.      for(var i =0; i<ab.length;i++ ){  
  43.          if(ab[i].length<2){  
  44.              ab[i]="0"+ab[i];  
  45.          }  
  46.      }  
  47.     // alert(ab.join("/"));//转换日期为 2010/08/09  
  48.  }  
  49.   
  50.   
  51.  function checkDate2(inputDateObj){  
  52.    //  alert(inputDate);  
  53.      var inputDate = inputDateObj.value;  
  54.      if(checkDate(inputDate)){  
  55.          inputDateObj.style.border="";  
  56.          if(inputDate.indexOf("-") !=-1){  
  57.              inputDate = inputDate.replace(/-/g,'/');  
  58.          }  
  59.   
  60.   
  61.           var inputdate = inputDate.split("/",3);  
  62.          for(var i = 0; i< inputdate.length; i++ ){  
  63.          if(inputdate[i].length<2){  
  64.              inputdate[i]="0"+inputdate[i];  
  65.          }  
  66.      }  
  67.     // alert(inputdate.join("/"));  
  68.      }else{  
  69.            
  70.          inputDateObj.style.border="solid 2px red";  
  71.          inputDateObj.focus();  
  72.      }  
  73.   
  74.       
  75.  }  
0 0