[12]\d{3}(1[12]|0[1-9])(0[1-9]|1\d|2\d|3[01])

解决方案 »

  1.   

    <script type="text/javascript">
    function checkTime(time) {
    var p = /^[12]\d{3}(1[12]|0[1-9])(0[1-9]|1\d|2\d|3[01])$/;
    return p.test(time);
    }
    alert(checkTime("20060906"));
    alert(checkTime("20060936"));
    alert(checkTime("20060931"));
    </script>
    不知道你想要什么样的。。所以年的那个没判断。。
      

  2.   

    var dateString=/(^(20|19)\d{2})-((0[1-9]{1})|(1[0-2]{1}))-(\d{2})$/
    if(value.search(dateString) == -1)//value是你输入字符串
    var ds=value.split("-");
    year = parseFloat(ds[0]);
    month = parseFloat(ds[1]);
    day = parseFloat(ds[2]);
    mon_day = is_day(year);
    年份是从1900年到2099年
    加天数判断,包括闰年
    function is_day(year){
    flag = false;
    if(year%100 == 0){
    if(year%400 == 0) flag = true;
    }
    else{
    if(year%4 == 0) flag = true;
    }
    var mon_day=new Array();
    mon_day[0] = flag;
    mon_day[1] = 31;
    mon_day[2] = flag?29:28;
    mon_day[3] = 31;
    mon_day[4] = 30;
    mon_day[5] = 31;
    mon_day[6] = 30;
    mon_day[7] = 31;
    mon_day[8] = 31;
    mon_day[9] = 30;
    mon_day[10] = 31;
    mon_day[11] = 30;
    mon_day[12] = 31;
    return mon_day;
    }
    好了,可以给分了,