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

 我来答
小星星教育知识分享
高粉答主

2019-12-01 · 用教师的智慧点燃学生的智慧火花
小星星教育知识分享
采纳数:202 获赞数:67136

向TA提问 私信TA
展开全部

代码如下:

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

}

}

}

PHP54技术博客
2017-04-01 · TA获得超过477个赞
知道小有建树答主
回答量:354
采纳率:0%
帮助的人:108万
展开全部

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

  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)

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
扎俊
2021-11-08 · 知道合伙人互联网行家
扎俊
知道合伙人互联网行家
采纳数:366 获赞数:1525
涉猎C#;C++,vb,vb script,asp,PHP,JS,w3c,网站运营、推广等

向TA提问 私信TA
展开全部
/^[1-9]\d{3}\/(0[1-9]|1[0-2])\/(0[1-9]|[1,2][0-9]|3[0,1])$/

此正则表达式限制了月份为1到12月,日期为1到31日
更多追问追答
追问
谢谢咯
追答
My pleasure,要是觉得满意,还请选为最佳答案,谢谢。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蘑菇小剪辑
2016-12-10 · TA获得超过283个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:123万
展开全部
^[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日
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
appwq
2016-12-20 · 超过67用户采纳过TA的回答
知道小有建树答主
回答量:155
采纳率:66%
帮助的人:84.4万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式