`
plane
  • 浏览: 157368 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java中正则表达式验证日期格式

    博客分类:
  • java
阅读更多
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class DateCheck
{
	/**
	 * 正则表达式验证日期格式
	 * @param args
	 */
  public static void main(String[] args)
	{
		String checkValue = "2007-02-29";
        //String eL = "^((((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-)) (20|21|22|23|[0-1]?\\d):[0-5]?\\d:[0-5]?\\d$";
		
		String eL= "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))";
        Pattern p = Pattern.compile(eL); 
        Matcher m = p.matcher(checkValue); 
        boolean b = m.matches();
        if(b)
        {
        	
        	System.out.println("格式正确");
        }
        else
        {
        	System.out.println("格式错误");
        }

	}                                    

}
分享到:
评论
3 楼 taney_911 2012-03-14  
这个正则表达式也太长了把。。。
2 楼 superran_sy 2011-08-24  
害人。。。
8888-88-88
居然也格式正确
1 楼 raozhengyong 2009-09-16  
相当不错,我正在找这个东西,谢了!

相关推荐

Global site tag (gtag.js) - Google Analytics