<script language=javascript>
function strDateTime(str){
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; 
var r = str.match(reg); 
if(r==null)return false; 
var d= new Date(r[1], r[3]-1,r[4]); 
var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate()
return newStr==str
}
alert(strDateTime("2002-1-31"))
alert(strDateTime("2002-1-41"))
</script><script language=javascript>
function strDateTime(str){
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
var r = str.match(reg); 
if(r==null)return false; 
var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate()+" "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds()
return newStr==str
}
alert(strDateTime("2002-1-31 12:34:56"))
alert(strDateTime("2001-2-29 12:54:56"))
alert(strDateTime("2002-1-41 12:00:00"))
</script>

解决方案 »

  1.   

    <script language=javascript>
    String.prototype.isTime = function()
    {
      var r = this.match(/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/); 
      if(r==null)return false; var d = new Date(r[1], r[2]-1,r[3],r[4],r[5],r[6]); 
      return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[2]&&d.getDate()==r[3]&&d.getHours()==r[4]&&d.getMinutes()==r[5]&&d.getSeconds()==r[6]);
    }
    alert("20020131123456".isTime());
    alert("20010229125456".isTime());
    alert("20050141120000".isTime());
    </script>