isDate好象是用在vbscript里面的,不是javascript的函数

解决方案 »

  1.   

    javascript中好像没有isDate函数的吧,你自己编写的??
      

  2.   

    /** 
    IsDate: 用于判断一个字符串是否是日期格式的字符串 返回值: 
    true或false 参数: 
    DateString: 需要判断的字符串 
    Dilimeter : 日期的分隔符,缺省值为´-´ Author: PPDJ 
    sample: 
    var date = ´1999-1-2´; 
    if (IsDate(date)) 

    alert(´You see, the default separator is "-"); 

    date = ´1999/1/2"; 
    if (IsDate(date,´/´)) 

    alert(´The date´s separator is "/"); 

    */ function IsDate(DateString , Dilimeter) 

    if (DateString==null) return false; 
    if (Dilimeter==´´ || Dilimeter==null) 
    Dilimeter = ´-´; 
    var tempy=´´; 
    var tempm=´´; 
    var tempd=´´; 
    var tempArray; 
    if (DateString.length<8 && DateString.length>10) 
    return false; 
    tempArray = DateString.split(Dilimeter); 
    if (tempArray.length!=3) 
    return false; 
    if (tempArray[0].length==4) 

    tempy = tempArray[0]; 
    tempd = tempArray[2]; 

    else 

    tempy = tempArray[2]; 
    tempd = tempArray[1]; 

    tempm = tempArray[1]; 
    var tDateString = tempy + &acute;/&acute;+tempm + &acute;/&acute;+tempd+&acute; 8:0:0&acute;;//加八小时是因为我们处于东八区 
    var tempDate = new Date(tDateString); 
    if (isNaN(tempDate)) 
    return false; 
    if (((tempDate.getUTCFullYear()).toString()==tempy) && (tempDate.getMonth()==parseInt(tempm)-1) && (tempDate.getDate()==parseInt(tempd))) 

    return true; 

    else 

    return false; 

    } /** 
      

  3.   

    不好意思,拷下来把一些隐藏的东西也贴上去了
    自己看下面的吧
    http://www.meidi.net/Article/wangye/j-s/200507/2517.html
      

  4.   

    <SCRIPT language=Jscript>
    function isDate(y,m,d){
    var maxDays;
    if(y<1) return false;
    if((m<1)||(m>12)) return false;
    if(m==2)  maxDays=(((y%4==0) && (y%100!=0))||(y%400==0))?29:28;
       else maxDays=((m==4||m==6||m==9||m==11))?30:31;
       return ((d>=1) && (d<=maxDays))
    }
    function isstrDate(str){
      var arr=str.split("-");
      return (isDate(arr[0],arr[1],arr[2]));
    }
    alert(isstrDate("1984-4-30"));
    </SCRIPT>
      

  5.   

    function isDate(sDate) {
    var iYear, iMonth, iDay, iIndex var reg
    reg = new RegExp('[^0-9-]','')
    if (sDate.search(reg) >= 0)
    return false;

    iIndex = sDate.indexOf('-');
    if ( iIndex == -1 )
    return false;
    else {
    iYear = parseFloat(sDate.substr(0, iIndex));
    if ( isNaN(iYear) || iYear < 1900 || iYear > 2099 )
    return false;
    else
    sDate = sDate.substring(iIndex + 1, sDate.length);
    }

    iIndex = sDate.indexOf('-');
    if ( iIndex == -1 )
    return false;
    else {
    iMonth = parseFloat(sDate.substr(0, iIndex));
    if ( isNaN(iMonth) || iMonth < 1 || iMonth > 12 )
    return false;
    else
    sDate = sDate.substring(iIndex + 1, sDate.length);
    }

    iIndex = sDate.indexOf('-');
    if ( iIndex >= 0 )
    return false;
    else {
    iDay = parseFloat(sDate);
    if ( isNaN(iDay) || iDay < 1 || iDay > 31 )
    return false;
    }


    switch(iMonth) {
    case 4:
    case 6:
    case 9:
    case 11:
    if ( iDay > 30 )
    return false;
    else
    break;
    case 2:
    if ( ( ( iYear % 4 == 0 && iYear % 100 != 0 ) || iYear % 400 == 0 ) && iDay > 29 )
    return false;
    else if ( (iYear % 4 != 0 || (iYear % 100 == 0 && iYear % 400 != 0)) && iDay > 28 )
    return false;
    else
    break;
    default:
    }
    return true;
    }function parseDate(sDate) {
    var iIndex, iYear, iMonth, iDay

    iIndex = sDate.indexOf('-');
    iYear = parseFloat(sDate.substr(0, iIndex));
    sDate = sDate.substring(iIndex + 1, sDate.length);

    iIndex = sDate.indexOf('-');
    iMonth = parseFloat(sDate.substr(0, iIndex));
    iDay = parseFloat(sDate.substring(iIndex + 1, sDate.length));

    return new Date(iYear, iMonth - 1, iDay);
    }
      

  6.   

    不好意思.忘了打了~! 这个是一个data.js的文件。在页面调用的  
    <SCRIPT language=JavaScript src="/js/date1.js"></SCRIPT>
      

  7.   

    我写过的一个日期验证函数,处理yyyy-mm-dd格式的字符串<script language="JavaScript">
    <!--function CheckDate(strDate){
    var reg=/^(\d{4})([-])(\d{2})([-])(\d{2})/;
    if(!reg.test(strDate)){
    alert("日期格式不正确!\n正确格式为:2004-01-01");
    return false;
    }
    var ss=strDate.split("-");
    var year=ss[0];
    var month=ss[1];
    var date=ss[2];
    if(!checkYear(year)){return false;}
    if(!checkMonth(month)){return false;}
    if(!checkDate(year,month,date)){return false;}
    return true;
    }
    function checkYear(year){
    if(isNaN(parseInt(year))){alert("年份输入有误,请重新输入!"); return false;}
    else if(parseInt(year)<1950 || parseInt(year) >2050){ alert("年份应该在1950-2050之间!"); return false}
    else return true;
    }
    function checkMonth(month){
    if(isNaN(parseInt(month))){alert("月份输入有误,请重新输入!"); return false;}
    else if(parseInt(month)<1 || parseInt(month) >12){ alert("月份应该在1-12之间!"); return false}
    else return true;
    }
    function checkDate(year,month,date){
    var daysOfMonth=CalDays(parseInt(year),parseInt(month));
    if(isNaN(parseInt(date))){alert("日期输入有误,请重新输入!"); return false;}
    else if(parseInt(date)<0||parseInt(date)>daysOfMonth){ alert("日期应该在1-"+daysOfMonth+"之间!"); return false;}
    else return true;
    }
    function CalDays(year,month){
    /* var days=0;
    switch(month){
    case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31;break;
    case 4: case 6: case 9: case 11: days=30;break;
    case 2: if(isLeapYear(year)) days=29;
    else days=28;
    break;
    }
    return days;*/
    var date= new Date(year,month,0);
    return date.getDate();
    }
    function isLeapYear(year){
    if((year %4==0 && year %100!=0) || (year %400==0)) return true;
    else return false;
    }
    alert(CheckDate("2007-02-29"));
    //-->
    </script>
      

  8.   

    其实楼上的都是在做空事儿~~~其实Date对象的几个参数可以帮我们完成这些事情,new Date(year,month,day,hours,minutes,seconds);其中的参数随你怎么样输入,反正它会将你输入的日期都转换成正确的日期格式.若new Date(2005,13,45);大家自己试试,何必要去做检测...
      

  9.   

    但是我对JS实在不熟悉。现在在做一个订房的程序,需要JS空间选取时间。就像携程那种。我可以提供一个网址 http://travel.elong.com/hotels/default.aspx?Campaign_ID=4200338 类似于这种时间选取的。我也要对时间做多种判断。上面问的只是其中一种,不知道大家有没有做过这样的控件?
      

  10.   

    这个办法有投机性质,但代码更简练
    function isDate(y,m,d){
      var dt=new Date(y-1900,m-1,d);
      return (dt.getYear()+1900==y)&&(dt.getMonth()+1==m)&&(dt.getDate()==d);
    }
      

  11.   

    下而是我写的一个是不是按格式的日期的检测;有一个问题还不完成就是,大小月,和2月份的日期的问题,等写好再发,
    <input id=qidizi onkeydown=checkkey(this.value);><span id=show>请输入正确的时间格式:四位年份-二位月份(不足前补0)-二位日期(不足前补0)
    <script language ='javascript'>
    <!--
    //自己写当处理时检测是不是为空,要是为空就提示输入function checkkey(text)
    {//只能用数字键和删除和-             if(event.shiftKey || event.altKey || event.ctrlKey)
           {
             event.returnValue = false;
           }       var key = event.keyCode ;
           if(key == 8 )
           {//退格:8
             
           }else if(key == 109 || key == 189 )
            {//- 
              if( /^[1-9]\d{3}$/.test(text) == false  &&  /^[1-9]\d{3}-(?:(?:0[1-9])|(?:1[012]))$/.test(text) == false )
              {//不能输入-
                   event.returnValue = false;
              }
            }else if( ( key >95 && key < 106) || ( key >47 && key < 58) )
             {//0-9
               if( /^\d{4}$/.test(text) || /^\d{4}-\d{2}$/.test(text) || /^\d{4}-\d{2}-\d{2}$/.test(text))
               {//连线,完成不能输入数字
                  return event.returnValue = false;
               }
               if( (key == 96 || key == 48) && ( /^ *$/.test(text) || /^\d{4}-0$/.test(text) || /^\d{4}-\d{2}-0$/.test(text) ) )
               {//开始不能输入0; 月份十位为0时,日期十位为0时也不能;
                  return event.returnValue = false;
               }
               if(  /^\d{4}-$/.test(text) && ( key != 96 && key != 48 & key != 97 & key != 49) )
               {//月份开始只能输入0,1
                  return event.returnValue = false;
               }
               if(  /^\d{4}-1$/.test(text) && ( key != 96 && key != 48 && key != 97 && key != 49 && key != 98 && key != 50) )
               {//月份个位1只能输入0,1,2
                  return event.returnValue = false;
               }
               if(  /^\d{4}-\d{2}-$/.test(text) && ( key != 96 && key != 48 && key != 97 && key != 49 && key != 98 && key != 50 &&  key != 99 && key != 51) )
               {//日期十位只能输入0,1,2,3
                  return event.returnValue = false;
               }
               if(  /^\d{4}-\d{2}-3$/.test(text) && ( key != 96 && key != 48 && key != 97 && key != 49 ) )
               {//日期十位是3时,个位只能输入0,1
                  return event.returnValue = false;
               }
             }else 
              {
                    event.returnValue = false;
              }
    }
    //-->
    </script>
      

  12.   

    String.prototype.isDate=function(){
          return /\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}/.test(this);
    }
    alert("2003-2-10 12:23:42".isDate());