<script>
str="2004-06-11 23:01:00"
var reg = /^(\d+)\-(\d{1,2})\-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;  
var r = str.match(reg); 
if(r==null){ alert("0");}
</script>

解决方案 »

  1.   

    可以用这个函数来判断.<script>
    function isDate(str)
    {
        var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
        result = str.match(reg);
        if(result == null)return false;
        var d = new Date(result[1],result[3]-1,result[4])
        var newStr = d.getFullYear()+result[2]+(d.getMonth()+1)+result[2]+d.getDate();
        return str == newStr
    }
    alert(isDate("2004-5-1"))
    alert(isDate("2004-5-32"))
    alert(isDate("2004-2-30"))
    </script>
      

  2.   

    最简单的:var reg = /^(\d{1,4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;  还有一种就是先进行分隔,日期和时间两部,把日期按照-进行分隔,第一部分为年,第二部分为月,第三部分为日期,如果年大于当前年的话为出错,这样最准,日期不能大于31,月数不能大于12,如果有一项错误的话就报错,代码自己可以根据这个思路补上