有一个文本框,在它的textchange事件中,需要拿当前时间和输入的时间进行比较,如何判断输入的是不是时间啊文本框输入的时间格式这样  2010.01.01 不是这样的就不进提示有误

解决方案 »

  1.   


    try
    {
     DateTime dt=Convert.ToDateTime(textbox1.Text);
    }
    catch
    {
    }
      

  2.   

    正则表达式验证
    或DateTime.TryParse("",out dt);
      

  3.   


      /// <summary>
            /// 检验字符串是否为日期时间
            /// </summary>
            /// <param name="str">需要检验的字符串</param>
            /// <returns>是否为日期时间:true代表是,false代表否</returns>
            public static bool IsDateTime(string str)
            {
                Regex rx = new Regex(@"^[ ]*[012 ]?[0123456789]?[0123456789]{2}[ ]*[-]{1}[ ]*[01]?[0123456789]{1}[ ]*[-]{1}[ ]*[0123]?[0123456789]{1}[ ]*[012]?[0123456789]{1}[ ]*[:]{1}[ ]*[012345]?[0123456789]{1}[ ]*[:]{1}[ ]*[012345]?[0123456789]{1}[ ]*$");
                return rx.IsMatch(str);
            }
      

  4.   

    ^([1-9]{1}[0-9]{0,3}.((0[1-9]{1})|(1[0-2]{1})).((0[1-9]{1})|([12]{1}[0-9]{1})|(3[01])){1}))$http://topic.csdn.net/t/20020522/12/742944.htmlhttp://www.cnblogs.com/qdleven/articles/561041.html
      

  5.   

    正则表达式 形如 (2003-12-05)
    function isDate(str)
    {
    var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
    if(r==null)return false; 
    var d= new Date(r[1], r[3]-1, r[4]); 
    return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
    }
      

  6.   

    又见try...catch,绝不能把try...cacth当if then来用
      

  7.   

    正则表达式验证
    或DateTime.TryParse("",out dt);
      

  8.   

    工具箱验证中有个这控件,RegularExpressionValidator 在其属性ValidationExpress中输入上面几位的正则表达式,在ControToValidate属性中输入要验证的控件Id
      

  9.   

    正则表达式   或者强转成dateTime类型 抛异常
      

  10.   


    TryParse的效率高于try catch的,推荐。