正则表达式,判断格式为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形式
看你用什么语言,有两个思路: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
//验证日期的格式为****/**/** **,
//已经考虑到了闰年的问题,如2001/2/29是不允许的。而2008/2/29则是可以的。
//入口参数:日期字符串;
//出口参数:true|false
function verify_date(date_str)
{
var myReg=new RegExp("^(?:(?:([0-9]{4}/(?:(?:0?[1,3-9]|1[0-2])/(?:29|30)|((?:0?[13578]|1[02])/31)))|([0-9]{4}/(?:0?[1-9]|1[0-2])/(?:0?[1-9]|1\\d|2[0-8]))|(((?:(\\d\\d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))/0?2/29))) (0?\\d|1\\d|2[0-3]))$");
return myReg.test(date_str);
}
</script>
YYYY - MM - DD HH:SS:MM这样格式的正则表达式
^(\d{4})-([0-1]\d)-([0-3]\d)\s([0-5]\d):([0-5]\d):([0-5]\d)$ 这样也不是很完美的写法,比如说会出现 2000-19-39 这样的年份,不过数字的格式还是全部匹配到了.
JS怎么用正则表达式判断输入的日期格式为 yyyy - mm - dd
/^\d{4}\-\d{2}\-\d{2}$/ 这里只是限制了格式必须是yyyy-mm-dd ,如果想做的年月日校验很精准,那比较麻烦!