网上找的巨牛的验证日期和时间的正则表达式为什么到我这里就不管用呢?
function   isDate(str) 
 { 
 var   sReg   =    "^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))   (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$ "; 
 //alert(sReg); 
 //var   reg   =   new   RegExp(sReg, "i "); 
 var   reg   =   new   RegExp(sReg); 
 if(!reg.test(str)) 
 { 
       return   false; 
 } 
 return   true; 
 }   
 哪位大虾帮我看看!   
 /^([0-9]{4}\-(0?4|0?6|0?9|11)\-([0-2]?[0-9]|30)|[0-9]{4}\-(0?1|0?3|0?5|0?7|0?8|10|12)\-([0-2]?[0-9]|3[0-1])|(?:[0-9]{2}([02468][048]|[13579][26]))\-0?2\-[0-2]?[0-9]|(?![0-9]{2}([02468][048]|[13579][26]))[0-9]{4}\-0?2\-([01]?[0-9]|2[0-8]))-([0-1]?[0-9]|2[0-4])-([0-5]?[0-9]|60)-([0-5]?[0-9]|60)$/   
 这个也不中,晕
------解决方案--------------------确实牛     
 给你这个看看 
 //完整的日期验证函数 
 function CheckDate( str ) 
 { 
   var re=/^\d{4}-\d{1,2}-\d{1,2}$/; 
   var r=str.match(re); 
   if (r==null) 
   { 
     alert( "请按以下格式填写日期: yyyy-mm-dd! "); 
     return false;      
   } 
   else 
   { 
     var s=str.split( "- "); 
     var years = parseInt(s[0]); 
     var months = parseInt(s[1]); 
     var days = parseInt(s[2]); 
     if (parseInt(s[0].substring(0,2)) <19 || months> 12 || months <1 || days> 31 || days <1) 
     { 
       alert(请填写正确的日期); 
       return false 
     }              
     switch(months) 
     { 
       case 2: 
         if((years%4 == 0 && years%100 != 0) || (years%400 == 0)) 
         { 
           if(days >  29) 
           { 
             alert(闰年二月没有+days+日!); 
             return false; 
           }                  
         } 
         else 
         { 
           if(days >  28) 
           { 
             alert(平年二月没有+days+日!); 
             return false; 
           } 
         } 
         break;         
       case 4: 
         if(days >  30) 
         { 
           alert(四月没有+days+日!); 
           return false; 
         } 
         break; 
       case 6: 
         if(days >  30) 
         { 
           alert(六月没有+days+日!); 
           return false; 
         } 
         break; 
       case 9: 
         if(days >  30) 
         { 
           alert(九月没有+days+日!); 
           return false; 
         } 
         break; 
       case 1: 
         if(days >  30) 
         { 
           alert(十一月没有+days+日!); 
           return false; 
         } 
         break; 
     } 
     return true; 
   } 
 }
------解决方案--------------------好像判断有问题哦。 
  <script language= "javascript ">  
 var date1= "2007-05-31 "; 
 if(isDate(date1))  
 	{alert( "ok ");} 
 else 
 	{alert( "no ");}   
 function isDate(str) 
 { 
 var sReg =  "^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$ "; 
 //alert(sReg); 
 //var reg = new RegExp(sReg, "i ")