正则表达式!
http://www.google.com/search?sourceid=navclient&hl=zh-CN&ie=UTF-8&rls=RNWE,RNWE:2006-05,RNWE:zh-CN&q=%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F
----------------
http://www.esoftnow.com/bbs
技术论坛,欢迎光临!

解决方案 »

  1.   

    function IsDate(str)
    {
    var r = str.match(/\d{1,4}/g); 
    if(r==null)return false; 
    var d= new Date(r[0], r[1]-1, r[2]); 
    return (d.getFullYear()==r[0]&&(d.getMonth()+1)==r[1]&&d.getDate()==r[2]);
    }
    alert(IsDate("2008年-2月-29日"));
      

  2.   

    漏了一点
    function IsDate(str)
    {
    var r = str.match(/\d{1,4}/g); 
    if(r==null||r.length!=3)return false; 
    var d= new Date(r[0], r[1]-1, r[2]); 
    return (d.getFullYear()==r[0]&&(d.getMonth()+1)==r[1]&&d.getDate()==r[2]);
    }
    alert(IsDate("2004年-2月-29日"))
      

  3.   

    算你运气好,我昨天刚写的
    格式可以是2006-04-09 2006\04\09 2006/04/09 2006.04.09 2006 04 09
              2006-4-9    2006\4\9  2006/4/9  2006.4.9  2006 4 9
    //component 为要检测的表单的id
    function checkDateFormat(component){ 
    strDate = component.value;
    //"-",".","/","\"
    var reg = /[-|\\|\.|\/|\s]/g;
    strDate = strDate.replace(reg, "-");
    //"dddd-dd-dd"
    var regDate = /^(\d{1,4})(-)(\d{1,2})\2(\d{1,2})$/; 
    var result = strDate.match(regDate);
    if ( result == null ){
    return false;
    }
    var month = ((""+result[3]).length < 2)?("0" + result[3]):("" + result[3]);
    var day = ((""+result[4]).length < 2)? ("0" + result[4]):("" + result[4]);
    strDate = result[1] + result[2] + month + result[2] + day;
    var date = new Date(result[1], result[3]-1,result[4]);
    month = ((date.getMonth() + 1) < 10)?("0" + (date.getMonth() + 1)):("" + (date.getMonth() + 1));
    day = (date.getDate() < 10)?("0" + date.getDate()):("" + date.getDate());
    var newStr=date.getFullYear() + result[2] + month + result[2] + day;
    return newStr == strDate;
    }