跳至正文

正则表达式日期yyyymmdd格式(如何用正则表达式表达日期)

正则表达式,判断格式为yyyyMMdd的日期格式!

正则表达式,判断格式为yyyyMMdd的日期格式!

/^\d{4}-(?:0\d|1[0-2])-(?:[0-2]\d|3[01])( (?:[01]\d|2[0-3])\:[0-5]\d\:[0-5]\d)?$/ 唯一的漏洞就是不管是几月份,都可以有31天,这个比较难处理.如果这个也需要严格验证,那最优的方案,应该是用多个正则.一个正则也不是不行,只是性能太差,不划算.望采纳

求日期格式正则表达式

求日期格式正则表达式

匹配yyyy-mm-dd的正则如下 \d{4}-\d{2}-\d{2}

怎样用正则表达式把日期格式由yyyy – mm – dd改为yyyymmdd形式

怎样用正则表达式把日期格式由yyyy - mm - dd改为yyyymmdd形式

看你用什么语言,有两个思路:1.替换-为空:比如java str.replaceAll("-","")2.正则抓取数字组合: 比如java str.replaceAll("(\\d{4})-(\\d{2})-(\\d{2})","$1$2$3") 其他语言,类似

yyyy/mm/dd日期格式怎么写正则表达式

\d{4}\/\d{2}\/\d{2}

怎么用正则表达式来验证日期啊 (yyyy-MM-dd)

1>.首先需要验证年份,显然,年份范围为

0001 – 9999,匹配YYYY的正则表达式为:

[0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3}

其中

[0-9] 也可以表示为 \d,但 \d 不如 [0-9] 直观,因此下面我将一直采用

[0-9]<BR><BR>用正则表达式验证日期的难点有二:一是大小月份的天数不同,二是闰年的考虑。<BR>对于第一个难点,我们首先不考虑闰年,假设2月份都是28天,这样,月份和日期可以分成三种情况

1、月份为1, 3, 5, 7, 8, 10, 12,天数范围为 01 – 31,匹配MM-DD的正则表达式为:(0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01])

2、月份为4, 6, 9, 11,天数范围为 01-30,匹配MM-DD的正则表达式为:

(0[469]|11)-(0[1-9]|[12][0-9]|30

3、月份为2,考虑平年情况,匹配MM-DD的正则表达式为:02-(0[1-9]|[1][0-9]|2[0-8根据上面的成果,我们可以得到匹配平年日期格式为YYYY-MM-DD的正则表达式

([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))

接着我们来解决第二个难点:闰年的考虑。根据闰年的定义,我们可以将闰年分为两类

1、能被4整除但不能被100整除的年份。寻找后两位的变化规律,可以很快得到下面的正则匹配([0-9]{2})(0[48]|[2468][048]|[13579][26])

2、能被400整除的年份。能被400整除的数肯定能被100整除,因此后两位肯定是00,我们只要保证前两位能被4整除即可,相应的正则表达式为:(0[48]|[2468][048]|[3579][26])00</BLOCKQUOTE></SPAN>闰年的2月份有29天,因此匹配闰年日期格式为YYYY-MM-DD的正则表达式为(([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29最后,将平年和闰年的日期验证表达式合并,我们得到最终的验证日期格式为YYYY-MM-DD的正则表达式为:(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][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)

DD/MM/YYYY格式的正则验证表达式为:(((0[1-9]|[12][0-9]|3[01])/((0[13578]|1[02]))|((0[1-9]|[12][0-9]|30)/(0[469]|11))|(0[1-9]|[1][0-9]|2[0-8])/(02))/([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3}))|(29/02/(([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00)))

日期和时间的正则表达式:时间格式是yyyy – MM – dd hh:mm:ss和MM – dd hh:mm:ss和hh:mm:ss

js:
var m = /(\d{4}-\d{2}-\d{2}\d{2}:\d{2}:\d{2})|(\d{2}-\d{2}\d{2}:\d{2}:\d{2})|(\d{2}:\d{2}:\d{2})/;
var s = "2012-01-23 21:08:29";
//s = "01-23 21:08:29";
//s = "21:08:29";
alert(m.test(s));

java:将上面的\d换成\\d

验证时间的正则表达式要求yyyyMMDD

[2]\d{3}[0|1][1-9][0-3]\d

求:正则表达式验证日期 YYYYMMDD HH


用正则表达式对日期字符串进行验证:


说明:
1:日期格式为,如:2008/8/8 12或是2008/08/08 23都是正确的。
2:可以对0000~9999年中的任一天的日期进行合法性验证。
3:对于闰年时2月有29号此种情况也进行有效验证。
4:举例不合格日期,1984/1/32 25 和 1984/04/31 25 和 2001/02/29 25





Neve | 采用WordPress