<html>
<head>
<script type="text/javascript">function IsDate() {
var s=document.getElementsByName('date')[0].value;
var re = /^(\d{4})(\-)(\d{1,2})\-(\d{1,2})$/;
var m = re.exec(s);
if (m == null) return false;
var d = new Date(m[1],m[3]-1,m[4]);
return d.getFullYear()==m[1] && d.getMonth()==(m[3]-1) && d.getDate()==m[4];
}</script><meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head><body>
<form name="form1" action="" method="post" onSubmit="return IsDate()">
<tr><input type="text" name="date"></tr><br>
<tr><input type="submit" value="OK"></tr></form></body>
</html>

解决方案 »

  1.   

    String.prototype.isDate = function()
    {
       var r = this.match(/^(\d{4})(-|\/)(\d{2})\2(\d{2})$/); 
       if(r==null)return false; var d = new Date(r[1], r[3]-1, r[4]); 
       return(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
    }
    function mm()
    {
      if(!document.form1.date.value.isDate())
      {
        alert("输入的不是日期格式!");
        document.form1.date.focus();
        return false;
      }
      return true;
    }<form name="form1" action="" method="post" onSubmit="return mm()">
    <tr><input type="text" name="date"></tr><br>
    <tr><input type="submit" value="OK"></tr></form>