在秋水的基础上写的函数
function isDate(obj)
{
if(arguments==1)msg="日期格式不正确!";
else msg=arguments[1];
var re=/^(\d{1,4})(-|\/|\.)(\d{1,2})\2(\d{1,2})$/;
var result=false;
var r=obj.value.match(re);
if(r!=null){
var d= new Date(r[1], r[3]-1,r[4]); 
var s=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate()
result=(s==obj.value);
}
if(!result)
{
alert(msg);
obj.select();
return false;
}
else return true;
}

解决方案 »

  1.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    </HEAD><script language="javascript">
    function IsDate(dateStr)
    {
    // Checks for the following valid date formats:
    // MM/DD/YYYY   MM-DD-YYYY var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; var matchArray = dateStr.match(datePat)
    if (matchArray == null)
    return false month = matchArray[1]
    day = matchArray[3]
    year = matchArray[4]
    if (month < 1 || month > 12)
    return false if (day < 1 || day > 31)
    return false if ((month==4 || month==6 || month==9 || month==11) && day==31)
    return false if (month == 2)
    {
    var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))
    if (day>29 || (day==29 && !isleap))
    return false;
    }
    return true;
    }
    alert(IsDate("02/28/2002"))
    </script>
    <BODY></BODY>
    </HTML>