日期格式驗證

2022-09-13 03:54:11 字數 1812 閱讀 2062

日期格式yyyymmdd正規表示式:    

var reg = /^([0-9][1-9]|[0-9][1-9][0-9]|[0-9][1-9][0-9]|[1-9][0-9])((0[13578]|10|12)(0[1-9]|1[0-9]|2[0-9]|3[01])|(0[469]|11)(0[1-9]|1[0-9]|2[0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))|(((0[48]|[13579][26]|[2468][048])000209)|([0-9](0[48]|[13579][26]|[2468][048])0209))$/;  //已做測試

用正規表示式如何判斷日期yyyymmdd。日期判斷涉及到閏年平年的判斷,大月小月的判斷等。由於好久沒用正規表示式了,所以只能一步一步的來實現日期的判斷。最後竟成功了,下面分享一下這個過程。

首先,我想到的是大月的判斷。1,3,5,7,8,10,12這幾個月都是31天,有相似之處,但是又稍有不同。

(0[13578]|10|12)(0[1-9]|1[0-9]|2[0-9]|3[01])                   //

前乙個括號是月的判斷,後乙個括號是日期的判斷

測試了一下成功了,接下來進行小月的判斷,30天的月份有4,6,9,11。與判斷大月基本類似:

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

然後判斷2月份,先考慮28天的情況

02(0[1-9]|1[0-9]|2[0-8]) 

現在月份和日期都判斷完了,再考慮年的情況。這裡年的範圍是0001至9999。判斷的正規表示式為:

[0-9][1-9]|[0-9][1-9][0-9]|[0-9][1-9][0-9]|[1-9][0-9]< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />

然後考慮閏年的情況,閏年又分為兩種情況,一種是正百年能夠被400整除,另一種是非整百年能被4整除。整百年的情況,主要是前兩位:04,08;頭一位是偶數的,[2468][048];頭一位是奇數的,[13579][26]:

(0[48]|[13579][26]|[2468][048])00

另一種閏年的情況,非百年能被4整除的年,主要是考慮後兩位能被4整除,與上面的類似也分奇偶:

[0-9](0[48]|[13579][26]|[2468][048])

將閏年的合併:

((0[48]|[13579][26]|[2468][048])00)|([0-9](0[48]|[13579][26]|[2468][048]))

現在所有的條件都考慮了,剩下的就是合併了。

不考慮閏年的2月29號的情況:

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

考慮了閏年的2月29號的最終表示式為:

([0-9][1-9]|[0-9][1-9][0-9]|[0-9][1-9][0-9]|[1-9][0-9])((0[13578]|10|12)(0[1-9]|1[0-9]|2[0-9]|3[01])|(0[469]|11)(0[1-9]|1[0-9]|2[0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))|(((0[48]|[13579][26]|[2468][048])000209)|([0-9](0[48]|[13579][26]|[2468][048])0209

js驗證日期格式

function checkdate 2 9 d 10 12 0?13578 3 01 12 0 9 0?1 9 1 8 9 d 2 9 d 11 0?469 30 12 0 9 0?1 9 1 8 9 d 2 9 d 0?2 2 0 8 1 0 9 0?1 9 2468 048 00 0?2 29...

js驗證日期格式

下面介紹兩種js驗證的方式 方法一 js html div asp textbox id textbox1 runat server onblur check asp textbox asp button id button1 runat server text button div 上面的方法是驗...

js驗證日期格式

下面介紹兩種js驗證的方式 方法一 js html div asp textbox id textbox1 runat server onblur check asp textbox asp button id button1 runat server text button div 上面的方法是驗...