<FORM METHOD=POST ACTION="" name=frm>
<INPUT TYPE="text" NAME="text">
<INPUT TYPE="button" onclick="javascript:IsDate(frm.text.value)">
</FORM>
<SCRIPT LANGUAGE="JavaScript">
<!--
function IsDate(str)
{
    var re=/^(\d{4})-(\d{1,2})-(\d{1,2})$/
if(!re.test(str)) 
 { alert('日期输入不对,格式如:2003-01-01'); return false}
else {
var r=str.match(re)
var d=new Date(r[1],r[2]-1,r[3])
d.getFullYear()==r[1]&&d.getMonth()==r[2]-1&&d.getMonth()==r[3]
var today = new Date(); 
       today.getYear();                                                             
       today.getMonth();                                                        
       today.getDate();
   alert(today);
   alert(d);
   if (str<today)
 {
 alert('非法日期!');return false
 }
}
   }
//-->
</SCRIPT>你判断的不止有日期还有时间,运行我的代码你就知道错在哪里了,你输入当天日期,时间是00:00:00,当然小于现在的时间,所以说非法。