你需要写一个正则表达式来进行匹配
String regex = "^[0-9]{4}-{1}[0-9]{2}-{1}-[0-9]{2}+$";(没有验证对不对)
然后天数,日期就根据字符串提取出来后判断吧
可以去网上搜索一下,日期的正则表达式的匹配,多的是

解决方案 »

  1.   

    同意  Tianminghui(colin)现在js的东西很多,检验时候用的regex,这些检验都在前端,后端直接处理的是合法的日期,不用检测了
      

  2.   

    这个方法可以,我以前做的,你看看咯,可能对你有帮助
    function isDate(value)
    {
    var dateValue = trimString(value);
    var regExp = new RegExp("^[1-9][0-9][0-9][0-9]-((0[1-9])|(1[0-9]))-[0-3][0-9]$", "g");
       var result = dateValue.match(regExp);
    if(result == null)
    {
    return false;
    }else
    {
    var dateItems = dateValue.split("-");
    var yearInt = parseFloat(dateItems[0]);
    var monthInt = parseFloat(dateItems[1]);
    var dayInt = parseFloat(dateItems[2]);
    if(monthInt < 1 || monthInt > 12) return false;
    if(monthInt == 1 || monthInt == 3 || monthInt == 5 || monthInt == 7 ||
                monthInt == 8 || monthInt == 10 || monthInt == 12)
    {
    return (dayInt >= 1 && dayInt <= 31) ? true : false;
    }else
             {
    if(monthInt != 2) return (dayInt >= 1 && dayInt <= 30) ? true : false;
    else{
    if(yearInt % 4 == 0 && (yearInt % 100 != 0 || yearInt % 400 == 0))
    {
    return (dayInt >= 1 && dayInt <= 29) ? true : false;
    }
    return (dayInt >= 1 && dayInt <= 28) ? true : false;
    }
    }
    }
    return true;
    }