求一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;

}

}

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-04-01

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

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

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

    比较严格的日期判定(但还是没有闰年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])))?)

    严格的日期判定(包括闰年的判定): (\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)

第2个回答  2021-11-08
/^[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,要是觉得满意,还请选为最佳答案,谢谢。

追问

再请教下这个正则表达式 /^\d{1,3}(?:\.\d{1,3})?$/ 匹配可以为整数(若为整数,整数不能超过2位),也可以是小数(整数部分不能超过2位,小数部分也不超过2位)。。。(不考虑负数)。但是像02, 03.34这样也能通过哦,如何让第一位不为0 呢,当然0.23这样是允许的?

追答

主提问:/^[1-9]\d{3}\/(0[1-9]|1[0-2])\/(0[1-9]|[1,2][0-9]|3[0,1])$/
追问:/^[1-9]?[0-9](\.[0-9][1-9]|\.[1-9])?$/

本回答被提问者和网友采纳
第3个回答  2016-12-10
^[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日
第4个回答  2016-12-20
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

求一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]);...

javascript 正则表达式验证 MM\/dd\/yyyy 怎么写
表达式如下:^(20[01]\\d|1\\d{3}|0[1-9]\\d\\d|00[1-9]\\d|000\/d)\\\/(0[1-9]|1[0-2])\\\/(3[01]|[0-2]\\d)2. 年月日匹配宽度可变: 年份1-4位,月份1-2位,日1-2位 2010-2000 -- 20[01]\\d 1999-1000 -- 1\\d{3} 999-10 -- [1-9]\\d\\d?9-0 -- \\d 表达...

js正则表达式验证时间格式yyyy\/MM\/dd HH:mm
\/^\\d{4,}\\\/(?:0?\\d|1[12])\\\/(?:[012]?\\d|3[01]) (?:[01]?\\d|2[0-4]):(?:[0-5]?\\d|60)$\/.test('2015\/11\/3 12:24')

yyyy- mm- dd可以用正则表达式验证吗?
日期格式“yyyy-MM-dd”可以使用正则表达式“\\\\d{4}-\\d{\\1-\\12}-\\d{\\1-\\31}?”来验证。其中,“\\d{4}”代表4位0-9的数字,“\\d{\\1-\\12}”代表数字1-12,“\\d{\\1-\\31}”代表数字1-31。正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元...

如何让表单判断输入的是否为YYYY-MM-DD 格式?
如果不需要判定输入日期是否合法 可用此简单的正则表达式:<script language="javascript"> function check( str ) { var date = \/^\\d{4}(\\-|\\\/|\\.)\\d{1,2}\\1\\d{1,2}$\/ if(!date.test(str) && str!=""){ alert('please input as yyyy-mm-dd');document.all.test.value="";d...

...MM-dd日期格式的字符串变量,怎么用js正则表达式匹配出从2000-01...
var date0= new Date();date0.setFullYear(2000,01,01);var date1=new Date();date1.setFullYear(yyyy,MM,dd);iDays = parseInt(Math.abs(date1 -date0) \/ 1000 \/ 60 \/ 60 \/24);iDays就是相差的天数。

用正则表达式匹配日期和时间
\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2} \/\/标准的日期加时间 满意请采纳

js验证日期格式?yyyy-mm-dd 18:23 这种何解?越简单越好。谢谢可爱的你...
分两步,第一步是正则表达式验证,楼上的专家已经写出正则表达式了,我就不重复啦 第二步,创建一个date对象实例,然后把以上时间分割并转换为数字然后设置进去,然后比较一下字符串是不是相等。怎么切开字符串我就不写了,很容易的。时间比较的方法如下:var date = new Date();date.setFullYear(2013...

MM\/YYYY 正则表达式javascript
\/^(0[1-9])|(1[0-2])\\\/\\d{4}$\/以上正则表达式支持0000年1月到9999年12月

如何用正则表达式判断yyyy-mm-dd
比如 2009-12-33 也会被认为是合法。正确的正则表达式(包括测试代码):var str = '2009-12-33';if(str.match(\/^((?:19|20)\\d\\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$\/)) { alert('是日期');} else { alert('不是日期');} ...

相似回答