要满足yyyy-MM-dd格式的正则表达式,
其中主要是dd必须在1到31之间,
我是用在Java类中,请不要写在javaScript,谢谢!!

解决方案 »

  1.   


     String ss="\\d{4}-\\d{2}-(0[1-9]|([12][0-9])|(3[01]))";
            System.out.println("0000-00-12".matches(ss));
      

  2.   

    (?:[0-9]{1,4}(?<!^0?0?0?0))-(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8]|(?:(?<=(?:0[13578]|1[02])-)(?:29|3[01]))|(?:(?<=(?:0[469]|11)-)(?:29|30))|(?:(?<=(?:(?:[0-9]{0,2}(?!0?0)(?:[02468]?(?<![13579])[048]|[13579][26]))|(?:(?:[02468]?[048]|[13579][26])00))-02-)(?:29)))
      

  3.   

    上面那个有点小 bug,月和日必须是两位数的,修改后如下:(?:[0-9]{1,4}(?<!^0?0?0?0))-(?:0?[1-9]|1[0-2])-(?:0?[1-9]|1[0-9]|2[0-8]|(?:(?<=-(?:0?[13578]|1[02])-)(?:29|3[01]))|(?:(?<=-(?:0?[469]|11)-)(?:29|30))|(?:(?<=(?:(?:[0-9]{0,2}(?!0?0)(?:[02468]?(?<![13579])[048]|[13579][26]))|(?:(?:[02468]?[048]|[13579][26])00))-0?2-)(?:29)))参考:http://blog.csdn.net/bao110908/archive/2008/02/29/2132973.aspx
      

  4.   

    偶然发现一个地址
    http://www.java3z.com/cwbwebhome/article/article8/Regex/Java.Regex.Tutorial.html火龙果果然不是一般的猛
      

  5.   


    这篇文章咋到这里去了?我记得是在这里发的啊。
    http://topic.csdn.net/u/20080306/17/f37a1818-3968-49b4-8f79-e5564486d63e.html