java 正则表达式验证日期格式 yyyy-MM-dd,如何写???

供稿:hz-xin.com     日期:2024-05-05
求一js正则表达式验证YYYY/MM/DD格式日期。

代码如下:
/*日期验证dd/mm/yyyy*/
functionisDate(str){
vardate=str;
varresult=date.match(/^([0]?[1-9]|[1|2][0-9]|[3][0|1])[/]([0]?[1-9]|[1][0-2])[/]([0-9]{4}|[0-9]{2})$/);
if(result==null)
returnfalse;
vard=newDate(result[3],result[2]-1,result[1]);
return(d.getFullYear()==result[3]&&(d.getMonth()+1)==result[2]&&d.getDate()==result[1]);
}

扩展资料
java用正则表达式判断输入的日期格式为yyyy/MM/dd
publicstaticvoidmain(String[]args)throwsParseException{

Stringstr1="2012-05-15";

Stringstr2="2012/05/15";

if(zzbd(str1)){

System.out.println("str1havematch!");

}else{System.out.println("str1don'tmatch!");}

if(zzbd(str2)){

System.out.println("str2havematch!");

}else{System.out.println("str2don'tmatch!");}}

publicstaticbooleanzzbd(Strings)

{

Patternpattern=Pattern.compile(\\d{4}/\\d{2}/\\d{2});

Matchermatcher=pattern.matcher(s);

if(matcher.find())

{

returntrue;

}else{

returnfalse;

}

}

}

Java正则,"^\\d{4}-\\d{2}-\\d{2}$"
严格验证 "1923-33-44",
多个空格" 1923-33-44"都算验证失败

我前不久刚好整了这段代码,你仔细看一下:
闰年:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))

平年:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))

上面代码验证的格式是yyyyMMdd,看懂了这个,你那个也就清楚了

String eL = "[0-9]{4}-[0-9]{2}-[0-9]{2}";
Pattern p = Pattern.compile(eL);
Matcher m = p.matcher(date);
boolean dateFlag = m.matches();
if (!dateFlag) {
System.out.println("格式错误");
}
System.out.println("格式正确");

Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
System.out.print(format.format(date));

定义一个String类就行了