function check_date(p)
{
var re = /\d{4}\-(\d){1,2}\-(\d){1,2}/gi;
var v = document.all[p].value;
if( v.match(re) == null || (v.length != 10 && v.length != 9 && v.length != 8))
 {
  window.event.returnValue = false;
  alert("你填写的日期不对,请用类似: 2000-1-23 的格式!!!");
  return true;
 }
}

解决方案 »

  1.   

    同上,我觉得在坐下判断就好了0<month<13 0<date<32
      

  2.   

    function checkmod()
    {
    if (isInvalidDate(表单名.输入框名.value,"-")==true){
        alert("请正确填写您的出生日期(例如:2000-1-23)!");
        表单名.输入框名.focus();
        return (false);
        }
    )
      

  3.   

    function checkDate(s)
     {
        var isOk = false;
    tempArray = s.split('-');

    if (tempArray.length == 3)
      if ( parseInt(tempArray[0]).toString().length == 4)
        if ( parseInt(tempArray[1]) >=1 && parseInt(tempArray[1]) <=12)
      if ( parseInt(tempArray[2]) >=1 && parseInt(tempArray[2]) <= 31)
         isOk = true;    if(!isOk){ alert('日期有误,请用2000-1-23 的格式!!!'); returnValue = false; }
     }改进了一下。
      

  4.   

    楼上兄弟,isInvalidDate是内置函数?
    <script language=javascript>
    alert(isInvalidDate("2002-2-2","-"));
    </script>
    怎么有错误??
      

  5.   

    改进了一下:
     function checkDate(s)
     {
        var isOk = false;
    tempArray = s.split('-');

    if (tempArray.length == 3)
      if ( parseInt(tempArray[0]).toString().length == 4)
        if ( parseInt(tempArray[1]) >=1 && parseInt(tempArray[1]) <=12)
      if ( parseInt(tempArray[2]) >=1 && parseInt(tempArray[2]) <= 31)
         isOk = true;    if(!isOk){ alert('日期有误,请用2000-1-23 的格式!!!'); returnValue = false; }
     }
      

  6.   

    你是要日期型吗?
    re = /\d{4}\-(\d){1,2}\-(\d){1,2}/g
    function validDate(e){
       var ok=re.exec();
       if(!ok)return alert('你填写的日期不对,请用类似: 2000-1-23 的格式!');
       va ymd=e.value.spit('-');
       var date=new Date(ymd[0],ymd[1],ymd[2])
       return date
       
    }</script>
    <input name=date type=text onchange=validDate(this)>