判斷閏年的規則:
1、能被400整除
2、能被4整除不能被100整除
日期正規表示式的構建思想:
平年365天,閏年366天,只有在閏年的時候,2月有29天,其餘年份,2月總是只有28天,而其餘月份是的天數是一樣的。那麼,只需要對所有的年份(包括閏年)構建出2月只有28天(其餘月份正常表示)的正規表示式,(如果此時能夠識別出,那麼日期就是正常的,如果不能識別出,還有一種可能是閏年的2月29日),所以最後只需用閏年的2月29日的正規表示式與前面的正規表示式相或即可,最後識別不出來的就不是正確的日期。
ordinaryyearregular = ([0-9][1-9]|[0-9][1-9][0-9]|[0-9][1-9][0-9]|[1-9][0-9])
bigmonthregular = ((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))
smallmothregular = ((0[469]|11)-(0[1-9]|[12][0-9]|30))
februaryexceptforthelastdayregular = (02-(0[1-9]|1[0-9]|2[0-8]))
februarythelastdayregular = (02-29)
leapyearregular1 = (([0-9])(0[48]|[2468][048]|[13579][26]))
leapyearregular2 = ((0[48]|[2468][048]|[3579][26])00)
//這裡只是對日期的簡單表示,並不是真正的**(其中中括號是為了和小括號區分,別看花了眼)
[ordinaryyearregular + "-" + (bigmonthregular | smallmothregular | februaryexceptforthelastdayregular)]
| [(leapyearregular1 | leapyearregular2) + "-" + februarythelastdayregular ]
// 所有的年份
private ordinaryyearregular: string = '([0-9][1-9]|[0-9][1-9][0-9]|[0-9][1-9][0-9]|[1-9][0-9])';
// 大月
private bigmonthregular: string = '((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))';
// 小月
private smallmothregular: string = '((0[469]|11)-(0[1-9]|[12][0-9]|30))';
// 二月前28天
private februaryexceptforthelastdayregular: string = '(02-(0[1-9]|1[0-9]|2[0-8]))';
// 閏年二月第29天
private februarythelastdayregular: string = '(02-29)';
// 能被4整除不能被100整除
private leapyearregular1: string = '(([0-9])(0[48]|[2468][048]|[13579][26]))';
// 能被400整除
private leapyearregular2: string = '((0[48]|[2468][048]|[3579][26])00)';
// 日期的正則化表示
private dateregularexpression: regexp = new regexp('(' + this.ordinaryyearregular + '-('
+ this.smallmothregular + '|' + this.bigmonthregular + '|'
+ this.februaryexceptforthelastdayregular + '))|((' + this.leapyearregular1 +
'|' + this.leapyearregular2 + ')-' + this.februarythelastdayregular + ')');
正規表示式 日期
1 日期範圍 datetime 值型別表示值範圍在公元 紀元 0001 年 1 月 1 日午夜 12 00 00 到公元 c.e.9999 年 12 月 31 日晚上 11 59 59 之間的日期和時間。2 閏年 關於公曆閏年是這樣規定的 地球繞太陽公轉一周叫做一回歸年,一回歸年長365日5時48分...
日期的正規表示式
public static void datecheck 02468 048 13579 26 s 0?13578 1 02 s 0?1 9 1 2 0 9 3 01 0?469 11 s 0?1 9 1 2 0 9 30 0?2 s 0?1 9 1 2 0 9 d 02468 12 35679 1...
正規表示式 日期 驗證
日期的格式是yyyy mm dd 1 6 9 2 9 d d 0?13578 1 02 0?1 9 12 d 3 01 1 6 9 2 9 d d 0?13456789 1 012 0?1 9 12 d 30 1 6 9 2 9 d d 0?2 0?1 9 1 d 2 0 8 1 6 9 2 9 d...