第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

正則表達(dá)式匹配日期

正則表達(dá)式匹配日期

我想用mm / dd / yy或mm / dd / yyyy格式匹配日期,但它不應(yīng)該選擇23/09/2010,其中月份是23,這是無效的,也不是某些無效的日期,例如00/12/2020或12/00 / 2011。
查看完整描述

3 回答

?
SMILET

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個贊

您最好對/進(jìn)行拆分,然后測試所有單個部分。但是,如果您真的想使用正則表達(dá)式,可以嘗試以下一種:


#\A(?:(?:(?:(?:0?[13578])|(1[02]))/31/(19|20)?\d\d)|(?:(?:(?:0?[13-9])|(?:1[0-2]))/(?:29|30)/(?:19|20)?\d\d)|(?:0?2/29/(?:19|20)(?:(?:[02468][048])|(?:[13579][26])))|(?:(?:(?:0?[1-9])|(?:1[0-2]))/(?:(?:0?[1-9])|(?:1\d)|(?:2[0-8]))/(?:19|20)?\d\d))\Z#

說明:


\A           # start of string

 (?:         # group without capture

             # that match 31st of month 1,3,5,7,8,10,12

   (?:       # group without capture

     (?:     # group without capture

       (?:   # group without capture

         0?  # number 0 optionnal

         [13578] # one digit either 1,3,5,7 or 8

       )     # end group

       |     # alternative

       (1[02]) # 1 followed by 0 or 2

     )       # end group

     /       # slash

     31      # number 31

     /       # slash

     (19|20)? #numbers 19 or 20 optionnal

     \d\d    # 2 digits from 00 to 99 

   )         # end group

|

   (?:(?:(?:0?[13-9])|(?:1[0-2]))/(?:29|30)/(?:19|20)?\d\d)

|

   (?:0?2/29/(?:19|20)(?:(?:[02468][048])|(?:[13579][26])))

|

   (?:(?:(?:0?[1-9])|(?:1[0-2]))/(?:(?:0?[1-9])|(?:1\d)|(?:2[0-8]))/(?:19|20)?\d\d)

 )

\Z

我已經(jīng)解釋了第一部分,其余部分留作練習(xí)。


此匹配一個無效日期:02/29/1900,但對于01/01/1900到12/31/2099之間的任何其他日期都是正確的


查看完整回答
反對 回復(fù) 2019-10-21
?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個贊

您可以使用regexp做的最好的事情就是驗(yàn)證格式,例如:


[0-1][0-9]/[0-3][0-9]/[0-9]{2}(?:[0-9]{2})?

如果沒有某種日期字典,則無法可靠地完成任何其他工作。例如,日期的有效性取決于是否為a年。


查看完整回答
反對 回復(fù) 2019-10-21
  • 3 回答
  • 0 關(guān)注
  • 1084 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號