<script>
var re = /^(\d{4})(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])$/;
alert(re.test("20040913"));
</script>

解决方案 »

  1.   

    fason(Forbes Pu) 的正则表达式基本正确,但是无法判断如2月29号等这些不存在的日期。
      

  2.   

    function check(s){
    with (eval(s.replace(/^(\d{4})(\d{2})(\d{2})$/,"new Date($1,$2-1,$3)"))){
    return(getFullYear()+(getMonth()<9?"0":"")+(getMonth()+1)+""+getDate()==s)
    }
    }
    alert(check("20040913"));
    alert(check("20040229"));
    alert(check("20030229"));
    alert(check("20041232"));
      

  3.   

    抱歉,写错了。应为:function check(s){
    with (eval(s.replace(/^(\d{4})(\d{2})(\d{2})$/,"new Date($1,$2-1,$3)"))){
    return(getFullYear()+(getMonth()<9?"0":"")+(getMonth()+1)+(getDate()<9?"0":"")+getDate()==s)
    }
    }
    alert(check("20040903"));
    alert(check("20040229"));
    alert(check("20030229"));
    alert(check("20041232"));
      

  4.   

    function check() /*----*/
    {
    var re = /^(\d{4})[-./](1[0-2]|0?[1-9])[-./](0?[1-9]|[12][0-9]|3[01])$/;
    alert(re.test("2004-09-01"));
    alert(re.test("2004.9.30"));
    alert(re.test("2004/09/32"));
    }
      

  5.   

    该问题已经结贴 ,得分记录: fason (50)、 Apollo47 (5)、 emu_ston (25)、 emu_ston (15)、 cybernaute (5)、