我的需求是: 2010-1     2010-1-1  当然也支持  2010-01   2010-01-01    
不支持的有  月不能大于12 天数不能大于 31 就可以了,
有没有高手能够帮小第我解决解决, 555555555555

解决方案 »

  1.   

    这你还要考虑2月28天
    其他月30天  闰月等等问题
    不如直接用时间控件
    如97DateTimePicker
      

  2.   

    日期其实一般是不需要正则的,验证日期你可以直接这样
     #region  日期        /// <summary>        /// 检查是否是日期        /// </summary>        /// <param name="inputData"></param>        /// <returns></returns>        public static bool IsDate(string inputData)        {            try            {                DateTime.Parse(inputData);                return true;            }            catch            {                return false;            }        }        #endregion
      

  3.   

    当然,如果你非要正则也是可以的,不过还是建议用上边的来做,正则如下:
    Regex regular = new Regex(@"\d{1,2}/\d{1,2}/\d{4}");
                    Match resultpn = regular.Match(pn);
      

  4.   

    使用 DateTime.TryParseExact 吧
      

  5.   

    http://www.cnblogs.com/top5/archive/2010/05/20/1740129.html
      

  6.   

    看看专家的吧  http://blog.csdn.net/lxcnn/archive/2009/07/20/4362500.aspx
      

  7.   

    不是可能是我说的太麻烦了, 我在JS里面做的不能tryParse ^[1-2][0-9][0-9][0-9][-](1[0-2]|0?[1-9])$  现在这个正则是只能输入年和月,例如2010-1
    现在有人能帮我改改吗, 可以输入年月,也可以输入年月日就好,  然后我把这个字符串传到后台再 tryParse 就可以
      

  8.   

    因为用户可能只输入年和月,也有可能输入年月日, 所以这个正则只要这样能过就好,不用判断别的了,我在后台try一个就可以
      

  9.   

    <script type="text/javascript"> 
    function IsValidString(text)
    {
        return /(?!0000)[0-9]{4}-((0?[1-9]|1[0-2])(-(0[1-9]|1[0-9]|2[0-8]))?|(0?[13-9]|1[0-2])(-(29|30))?|(0?[13578]|1[02])(-31)?)$/.test(text);
    }
    document.write(IsValidString("2010-89-31")+"\r\n");
    document.write(IsValidString("2010-8-31")+"\r\n");
    document.write(IsValidString("2010-08-31")+"\r\n");
    document.write(IsValidString("2010-08")+"\r\n");
    document.write(IsValidString("2010-8")+"\r\n");
    </script>
      

  10.   


    不是所有东西都能用MY 97 的需求不同呀, 如果我只要年和月MY97和满足吗?