欢迎来到我的Blogs,希望在这里能同大家一起分享知识所带给我们的快乐。

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

使用CustomValidater以及JavaScript比较输入日期和当前日期

ASP.NET Code:
 
     <asp:textbox id="BeginDate" ..../>
     <asp:CustomValidator id="cvBeginDate" ControlToValidate=BeginDate runat="server" ErrorMessage="CustomValidator" ClientValidationFunction="ValidateBeginDate"></asp:CustomValidator>


JavaScript Code:

    
  function ValidateBeginDate(source, arguments)
  {            
          // 获取输入框数值
         var tmpDate = arguments.Value;
          // 对字符串进行处理
          // 以 - / 或 空格 为分隔符, 将日期字符串分割为数组
          tmpDate = tmpDate.split(/-|\/|\s/);
          // 创建 Date 对象
          var beginDate = new Date(tmpDate[0],tmpDate[1],tmpDate[2]);
          var tmpDate2 = new Date();
          var year = tmpDate2.getFullYear();
          var month = tmpDate2.getMonth()+1;
          var day = tmpDate2.getDate();
          var nowDate  =  new Date(year,month,day);
   
           if(beginDate > nowDate)
           {
                arguments.IsValid = false;
           }
           else
           {
                arguments.IsValid = true;
           }
  }

另外,下面是一个用于验证日期格式的正则表达式(比较完整):
   ^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$
posted on 2006-08-21 16:04  未知先觉  阅读(754)  评论(1)    收藏  举报