日期時間正規表示式 整理

2022-07-16 11:57:12 字數 3609 閱讀 4296

正規表示式

(?n:^(?=\d)((?31(?!(.0?[2469]|11))|30(?!.0?2)|29(?(.0?2)(?=.(1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(16|[2468][048]|[3579][26])00))|0?[1-9]|1\d|2[0-8])(?[/.-])(?0?[1-9]|1[012])\2(?(1[6-9]|[2-9]\d)\d)(?:(?=\x20\d)\x20|$))?(?((0?[1-9]|1[012])(:[0-5]\d)(?i:\ [ap]m))|([01]\d|2[0-3])(:[0-5]\d))?$)

匹配31/12/2003 | 29/2/2004 4:50 pm | 23:59:59

不匹配12/31/2003 | 29/2/2003 | 4:00

正規表示式

^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d)$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d)$

匹配29/02/1972 | 5-9-98 | 10-11-2002

不匹配29/02/2003 | 12/13/2002 | 1-1-1500

正規表示式

^(?:(((jan(uary)?|ma(r(ch)?|y)|jul(y)?|aug(ust)?|oct(ober)?|dec(ember)?)\ 31)|((jan(uary)?|ma(r(ch)?|y)|apr(il)?|ju((ly?)|(ne?))|aug(ust)?|oct(ober)?|(sept|nov|dec)(ember)?)\ (0?[1-9]|([12]\d)|30))|(feb(ruary)?\ (0?[1-9]|1\d|2[0-8]|(29(?=,\ ((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)))))))\,\ ((1[6-9]|[2-9]\d)\d))

匹配jan 1, 2003 | february 29, 2004 | november 02, 3202

不匹配feb 29, 2003 | apr 31, 1978 | jan 33,3333

正規表示式

^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))?$

匹配12:15 | 10:26:59 | 22:01:15

不匹配24:10:25 | 13:2:60

正規表示式

匹配11/24/0004 11:59 pm | 2.29.2008 | 02:50:10

不匹配12/33/1020 | 2/29/2005 | 13:00 am

正規表示式

^([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0]?[1-9]|[1][0-2])[./-]([0-9]|[0-9])$

匹配10/03/1979 | 1-1-02 | 01.1.2003

不匹配10/03/197 | 09--02--2004 | 01 02 03

正規表示式

^((0?[13578]|10|12)(-|\/)(([1-9])|(0[1-9])|([12])([0-9]?)|(3[01]?))(-|\/)((19)([2-9])(\d)|(20)([01])(\d)|([8901])(\d))|(0?[2469]|11)(-|\/)(([1-9])|(0[1-9])|([12])([0-9]?)|(3[0]?))(-|\/)((19)([2-9])(\d)|(20)([01])(\d)|([8901])(\d)))$

匹配1/2/03 | 02/30/1999 | 3/04/00

不匹配3/4/2020 | 3/4/1919 | 4/31/2000

正規表示式

^([2-9]\d((0[1-9]|1[012])(0[1-9]|1\d|2[0-8])|(0[13456789]|1[012])(29|30)|(0[13578]|1[02])31)|(([2-9]\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00))0229)$

匹配20000101 | 20051231 | 20040229

不匹配19990101 | 20053112 | 20050229

正規表示式

匹配08:00am | 10:00am | 7:00pm

不匹配13:00pm | 12:65am

正規表示式

^(([1-9])|(0[1-9])|(1[0-2]))\/(([0-9])|([0-2][0-9])|(3[0-1]))\/(([0-9][0-9])|([1-2][0,9][0-9][0-9]))$

匹配01/01/2001 | 1/1/1999 | 10/20/2080

不匹配13/01/2001 | 1/1/1800 | 10/32/2080

正規表示式

^\d\/\d\/\d$

匹配4/1/2001 | 12/12/2001 | 55/5/3434

不匹配1/1/01 | 12 jan 01 | 1-1-2001

正規表示式

(\d|\d)(?:\-)?([0]\d|[1][0-2])(?:\-)?([0-2]\d|[3][0-1])(?:\s)?([0-1]\d|[2][0-3])(?::)?([0-5]\d)(?::)?([0-5]\d)

匹配00-00-00 00:00:00 | 0000-00-00 00:00:00 | 09-05-22 08:16:00 | 1970-00-00 00:00:00 | 20090522081600

不匹配2009-13:01 00:00:00 | 2009-12-32 00:00:00 | 2002-12-31 24:00:00 | 2002-12-31 23:60:00 | 02-12-31 23:00:60

正規表示式

匹配0008-02-29 | 2:34:59 pm | 9999/12/31 11:59 pm

不匹配04/04/04 | 1:00 | 1999/1/32

正規表示式

^(([1-9])|([0-1][0-9])|([1-2][0-3])):([0-5][0-9])$

匹配00:00 | 23:59 | 10:10

不匹配24:00 | 00:60 | 25:61

正規表示式

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

匹配2004-04-30 | 2004-02-29

不匹配2004-04-31 | 2004-02-30

其他更多關於正規表示式的規則請閱讀:常用正規表示式

日期時間正規表示式

正規表示式 n d 31 0?2469 11 30 0?2 29 0?2 1 6 9 2 9 d 0 48 2468 048 13579 26 16 2468 048 3579 26 00 0?1 9 1 d 2 0 8 0?1 9 1 012 2 1 6 9 2 9 d d x20 d x20 0...

日期時間判斷正規表示式

這裡是判斷yyyy mm dd這種格式的,基本上把閏年和2月等的情況都考慮進去了,不過我已經忘了在 找到的。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 ...

正規表示式 日期

1 日期範圍 datetime 值型別表示值範圍在公元 紀元 0001 年 1 月 1 日午夜 12 00 00 到公元 c.e.9999 年 12 月 31 日晚上 11 59 59 之間的日期和時間。2 閏年 關於公曆閏年是這樣規定的 地球繞太陽公轉一周叫做一回歸年,一回歸年長365日5時48分...