function IsDateTime(obj){
    return IsShortDateTime(obj) || IsLongDateTime(obj);
}
思路这样,上面程序改一下就行了

解决方案 »

  1.   

    <script language="javascript">
    function isDatetime(str){
    var s="",x;
    var re=/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})(?:\s+(\d{1,2}):(\d{1,2}):(\d{1,2}))*$/g;
    if(re.exec(str)==null){
    alert("不是合法日期,请检查格式!");
    }else{
    try{
    var tempdt=new Date(RegExp.$1,RegExp.$3,RegExp.$4,RegExp.$5,RegExp.$6,RegExp.$7);
    //alert(tempdt.toString());
    }catch(e){
    alert("格式正确,但不是合法日期!");
    }
    }
    }
    </script>我写的一个,有个问题是月份,日期,时间超出后并不会抛出异常,而是加上去(例如输入1980-11-40,后日期会自动设为1980-12-9),你如果想要检查超没超出的话,你再根据你的要求修改一下吧
      

  2.   

    里面那句“var s="",x;”是多余的,忘了去了,请去掉
      

  3.   

    /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})(?:\s+(\d{1,2}):(\d{1,2}):(\d{1,2}))*$/g这个是有秒的,如果允许没有秒的话那是/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})(?:\s+(\d{1,2}):(\d{1,2})(?::(\d{1,2}))*)*$/g