var isLinkExpiryDateWithinRange = function(value) {
    var monthfield = value.split(-.')[1]; //12
    var dayfield = value.split('-')[2]; //08
    var yearfield = value.split('-')[0]; //2012
    var inputDate = new Date(yearfield, monthfield - 1, dayfield);
    var today = new Date();   
    
    today = new Date(today.getFullYear(), today.getMonth(), today.getDate());
    
    var endDate = new Date(today);
    endDate.setMonth(endDate.getMonth() + 6);
    if(inputDate > today && inputDate < endDate) {
        alert('1');
    } else {
        alert('2');
    }
}
            
 isLinkExpiryDateWithinRange('2012-12-08')代码修改自下面文章,没有执行验证过:
http://stackoverflow.com/questions/13291661/check-if-a-date-within-in-range

解决方案 »

  1.   

    直接用正则表达式即可。1.var re = new RegExp();//RegExp是一个对象,和Aarray一样  
    2.//但这样没有任何效果,需要将正则表达式的内容作为字符串传递进去  
    3.re =new RegExp("a");//最简单的正则表达式,将匹配字母a  
    4.re=new RegExp("a","i");//第二个参数,表示匹配时不分大小写  日期 的正则:
    ^(^(\d{4}|\d{2})(\-|\/|\.)\d{1,2}\3\d{1,2} $)|(^\d{4}年\d{1,2}月\d{1,2}日$)$ 
      

  2.   

    正则表达式验证日期检测示例
     <asp:TextBox ID="txtBirthday" runat="server" Width="117px" Font-Size="9pt"></asp:TextBox>//日期输入框
    //文本框验证
      if (!ValidateDate1(txtBirthday.Text) && !ValidateDate2(txtBirthday.Text) && !ValidateDate3(txtBirthday.Text))//验证文本框格式
            {
                Response.Write("<script language=javascript>alert('输入的日期格式有误!');location='Register.aspx'</script>");
            }
           else
            {
                //调用公共类中的ExceSQL方法,执行insert语句
                bool add = da.ExceSQL(P_str_Com);
                if (add)
                {
                    Response.Write("<script language=javascript>alert('恭喜您!检测成功!');location='../Index.aspx'</script>");
                }
                else
                {
                    Response.Write("<script language=javascript>alert('对不起!您注册失败!');location='javascript:history.go(-1)'</script>");
                }
            }//CodeGo.net/
    //设置正则验证代码程序
     public bool ValidateDate1(string input)
        {
            return Regex.IsMatch(input, "\\b(?<year>\\d{2,4})/(?<month>\\d{1,2})/(?<day>\\d{1,2})\\b");
        }
        public bool ValidateDate2(string input)
        {
            return Regex.IsMatch(input, "\\b(?<year>\\d{2,4})-(?<month>\\d{1,2})-(?<day>\\d{1,2})\\b");
        }
        public bool ValidateDate3(string input)
        {
            return Regex.IsMatch(input, "\\b(?<year>\\d{2,4})年(?<month>\\d{1,2})月(?<day>\\d{1,2})日\\b");
        }
      

  3.   

    http://bijian1013.iteye.com/blog/2059811