求一js正则表达式验证YYYY⼀MM⼀DD格式日期。

2024-11-25 11:17:27
推荐回答(5个)
回答1:

代码如下:

/*日期验证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;

}

}

}

回答2:

来说,条件越多的正则表达式越严格,但表述起来也越麻烦,你可以根据需要选择不同的正则表达式去判别 

  1. 只检查格式: \d{4}-\d{2}(-\d{2})?

  2. 简单的日期判定(比如说2000-02-30仍然通过判定): \d{4}-(((0[1-9])|(1[0-2])))(-((0[1-9])|([1-2][0-9])|(3[0-1])))?

  3. 比较严格的日期判定(但还是没有闰年2月29的判定): \d{4}-(((0(1|3|5|7|8))|(1(0|2)))(-((0[1-9])|([1-2][0-9])|(3[0-1])))?)|(((0(2|4|6|9))|(11))(-((0[1-9])|([1-2][0-9])|(30)))?)|((02)(-((0[1-9])|([1-2][0-9])))?)

  4. 严格的日期判定(包括闰年的判定): (\d{4}-(((0(1|3|5|7|8))|(1(0|2)))(-((0[1-9])|([1-2][0-9])|(3[0-1])))?)|(((0(2|4|6|9))|(11))(-((0[1-9])|([1-2][0-9])|(30)))?)|((02)(-((0[1-9])|(1[0-9])|(2[0-8])))?))|(((([0-9]{2})((0[48])|([2468][048])|([13579][26]))|(((0[48])|([2468][048])|([3579][26]))00)))-02-29)

回答3:

/^[1-9]\d{3}\/(0[1-9]|1[0-2])\/(0[1-9]|[1,2][0-9]|3[0,1])$/

此正则表达式限制了月份为1到12月,日期为1到31日

回答4:

^[12]\d{3}/(?:0[1-9]|1[0-2])/(?:0[1-9]|[12][0-9]|30|31)$
匹配1000/01/01到2999/12/31日之间的日期,具体规则如下:
1、年是4个数字,月、日是2个数字。
2、年必须在[1000,2999]内;月必须在[1-12]内,1-9月前须加0,如01;日必须在[1-31]内,1-9日前须加0,如09;
3、年、月后面必须跟/
以为判断2月天数挺麻烦,干脆都改为1-31日

回答5:

var pre=new RegExp('[1-2][0-9]{3}\/[0|1]+[1-9]+\/[0-3]+[1-9]+');
var s=pre.test('2016/01/0');
console.log(s);
返回true或者false