例如 "19980101" 是日期;"aaa110"不是日期

解决方案 »

  1.   

    string str="aaa110";
    try
    {
    Convert.ToDateTime(str);
    }
    catch
    {

    }
      

  2.   

    包含闰年二月等等的所有判断
    ^((((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-))$
      

  3.   

    我有一个正则,很好,比在www.baidu.com上找到的,据说是现在最好用的那个还要好,
    baidu的那个说支持 闰年,其实不是如果考虑给我多点分的话,我也愿意分享,HOHO~~
      

  4.   

    用正则可以很简单地表示出来
    不卖关子了,贴出来分享一下
    呵呵,分数楼主看着给就好了^(?:(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-)(?:0?2\1(?:29)))|(?:(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))))$支持 / - 更重要的是对闰年的支持非常之好
      

  5.   

    如果怕麻烦就用try Convert.ToDateTime吧
      

  6.   

    我支持以下方法:
    string str="aaa110";
    try
    {
    Convert.ToDateTime(str);
    }
    catch
    {}
    因为大多数情况下这种资源的消耗不会影响系统功能的。
    只有在非常复杂的系统中,才会有一点影响。
    资源的消耗很多情况下是感觉不到的。
      

  7.   

    用正则比较麻烦,我感觉还是用try比较好
      

  8.   

    方法有3
    1.正则
    2.很多人都爱用的try     影响性能
    3.用CompareValidator    哈哈,这个估计很多人不知道
      

  9.   

    在.net 1.x中可以使用转换是否产生异常来判断,
    在.net 2.0中可以使用
    DateTime.TryParse 方法

    DateTime.TryParseExact 方法 
    来做。