最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

常用日期格式正則表達(dá)式詳解(完善版)

 更新時(shí)間:2024年05月11日 11:38:33   作者:wangyanglongcc  
正則表達(dá)式是一種強(qiáng)大的字符串匹配工具,我們可以使用它來校驗(yàn)日期格式是否合法,這篇文章主要給大家介紹了關(guān)于常用日期格式正則表達(dá)式詳解的相關(guān)資料,需要的朋友可以參考下

第一步,驗(yàn)證年份

年份范圍為 0001 - 9999,匹配YYYY的正則表達(dá)式為:

[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}

第二步,驗(yàn)證月份和日期

1. 月份為[1, 3, 5, 7, 8, 10, 12],天數(shù)范圍為01-31

匹配MM__sep__DD的正則表達(dá)式為:

(0[13578]|1[02])__sep__(0[1-9]|[12][0-9]|3[01])

2. 月份為[4, 6, 9, 11],天數(shù)范圍為01-30

匹配MM__sep__DD的正則表達(dá)式為:

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

3. 月份為2月

3.1 平年,2月為01-28

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

3.2 閏年,2月為01-29

由于上面已經(jīng)把2月01-28都包含了,所以這里只需要把2月29號(hào)匹配出來即可

1. 能被4整除,但不能被100整除

前兩位不需要考慮,后兩位能被4整除只有以下3種情況:

  • ①十位為0,個(gè)位為[4,8]
  • ②十位為[2,4,6,8],個(gè)位為[0,4,8]
  • ③十位為[1,3,5,7,9],個(gè)位為[2,6]

則年份正則表達(dá)式為:

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

YYYY__sep__MM__sep__DD:

([0-9]{2})(0[48]|[2468][048]|[13579][26])__sep__02__sep__29

2. 能被400整除

首先,能被400整除,后兩位一定是00,則只需要保證前兩位能被4整除。

前兩位能被4整除只有以下3種情況:

  • ①千位為0,百位為[4,8]
  • ②千位為[2,4,6,8],百位為[0,4,8]
  • ③千位為[1,3,5,7,9],百位為[2,6]

則年份正則表達(dá)式為:

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

YYYY__sep__MM__sep__DD:

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

結(jié)論:

  • 平年

增加縮進(jìn),方便理解

([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})
__sep__
(
  ((0[13578]|1[02])__sep__(0[1-9]|[12][0-9]|3[01]))
  |
  ((0[469]|11)__sep__(0[1-9]|[12][0-9]|30))
  |
  (02__sep__(0[1-9]|[1][0-9]|2[0-8]))
)

直接使用,方便復(fù)制替換

([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})__sep__(((0[13578]|1[02])__sep__(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)__sep__(0[1-9]|[12][0-9]|30))|(02__sep__(0[1-9]|[1][0-9]|2[0-8])))

  • 閏年

增加縮進(jìn),方便理解

(([0-9]{2})(0[48]|[2468][048]|[13579][26])__sep__02__sep__29)
|
((0[48]|[2468][048]|[13579][26])00__sep__02__sep__29)

直接使用,方便復(fù)制替換

(([0-9]{2})(0[48]|[2468][048]|[13579][26])__sep__02__sep__29)|((0[48]|[2468][048]|[13579][26])00__sep__02__sep__29)

  • 平年和閏年合并

根據(jù)上述1和2,可以得出一個(gè)匹配合法日期的正則表達(dá)式(不區(qū)分平年和閏年)
增加縮進(jìn),方便理解

(([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})
__sep__
(
  ((0[13578]|1[02])__sep__(0[1-9]|[12][0-9]|3[01]))
  |
  ((0[469]|11)__sep__(0[1-9]|[12][0-9]|30))
  |
  (02__sep__(0[1-9]|[1][0-9]|2[0-8]))
))
|
((([0-9]{2})(0[48]|[2468][048]|[13579][26])__sep__02__sep__29)
|
((0[48]|[2468][048]|[13579][26])00__sep__02__sep__29))

直接使用,方便復(fù)制替換

(([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})__sep__(((0[13578]|1[02])__sep__(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)__sep__(0[1-9]|[12][0-9]|30))|(02__sep__(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])__sep__02__sep__29)|((0[48]|[2468][048]|[13579][26])00__sep__02__sep__29))

附:日期計(jì)算

JS的正則表達(dá)式還可以用來進(jìn)行日期計(jì)算。下面是一個(gè)計(jì)算兩個(gè)日期之間相差天數(shù)的例子:

function dateDiff(startDate, endDate){  let start = new Date(startDate);  let end = new Date(endDate);  let diff = end.getTime()- start.getTime();  return Math.floor(diff /(24 * 3600 * 1000));}console.log(dateDiff('2023-04-01','2023-05-01'));//輸出30

總結(jié) 

到此這篇關(guān)于常用日期格式正則表達(dá)式的文章就介紹到這了,更多相關(guān)日期格式正則表達(dá)式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python正則表達(dá)式之基礎(chǔ)篇

    Python正則表達(dá)式之基礎(chǔ)篇

    正則表達(dá)式是用于處理字符串的強(qiáng)大工具,它并不是Python的一部分。這篇文章主要介紹了Python正則表達(dá)式之基礎(chǔ)篇的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • 如何實(shí)現(xiàn)正則表達(dá)式的JavaScript的代碼高亮

    如何實(shí)現(xiàn)正則表達(dá)式的JavaScript的代碼高亮

    這篇文章主要介紹了如何實(shí)現(xiàn)正則表達(dá)式的JavaScript的代碼高亮方法,需要的朋友可以參考下
    2014-05-05
  • JavaScript正則表達(dá)式驗(yàn)證中文實(shí)例講解

    JavaScript正則表達(dá)式驗(yàn)證中文實(shí)例講解

    JavaScript經(jīng)常會(huì)驗(yàn)證中文本文將提供使用正則表達(dá)式實(shí)現(xiàn),接下來介紹兩個(gè)實(shí)例,感興趣的你可不要錯(cuò)過了哈,希望本例知識(shí)點(diǎn)可以幫助到你
    2013-02-02
  • javascript 基于正則表達(dá)式的文本框驗(yàn)證代碼

    javascript 基于正則表達(dá)式的文本框驗(yàn)證代碼

    js驗(yàn)證文本框內(nèi)容,以前jb51.net提供過不少是基于js函數(shù)版本的,這里提供一些正則表達(dá)式版本,大家學(xué)習(xí)歸學(xué)習(xí),最好是基于函數(shù)的綁定操作。代碼分離技術(shù)。
    2009-12-12
  • 正則表達(dá)式RegExp語法與用法詳解

    正則表達(dá)式RegExp語法與用法詳解

    正則表達(dá)式是一個(gè)描述字符模式的對(duì)象,當(dāng)檢索某個(gè)文本時(shí),可以使用一種模式來描述要檢索的內(nèi)容,RegExp就是這種模式,下面這篇文章主要給大家介紹了關(guān)于正則表達(dá)式RegExp語法與用法的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • 自動(dòng)檢測數(shù)字替換非數(shù)字的正則表達(dá)式

    自動(dòng)檢測數(shù)字替換非數(shù)字的正則表達(dá)式

    這篇文章主要介紹了自動(dòng)檢測數(shù)字替換非數(shù)字的正則表達(dá)式 ,需要的朋友可以參考下
    2016-05-05
  • ip138中各種客戶端驗(yàn)證js代碼

    ip138中各種客戶端驗(yàn)證js代碼

    包括ip驗(yàn)證,身份證驗(yàn)證,手機(jī)號(hào)碼驗(yàn)證,電話號(hào)碼,郵政編碼驗(yàn)證,域名驗(yàn)證等,其實(shí)好的代碼,都在應(yīng)用中,大家多去扒代碼吧。
    2009-12-12
  • 揭開正則表達(dá)式的神秘面紗(regexlab出品)

    揭開正則表達(dá)式的神秘面紗(regexlab出品)

    正則表達(dá)式學(xué)習(xí)起來其實(shí)是很簡單的,不多的幾個(gè)較為抽象的概念也很容易理解,之所以很多人感覺正則表達(dá)式比較復(fù)雜,一方面是因?yàn)榇蠖鄶?shù)的文檔沒有做到由淺入深地講解,概念上沒有注意先后順序,給讀者的理解帶來困難
    2020-02-02
  • javascript下一個(gè)還原h(huán)tml代碼的正則

    javascript下一個(gè)還原h(huán)tml代碼的正則

    javascript下一個(gè)還原h(huán)tml代碼的正則...
    2007-08-08
  • php與javascript正則匹配中文的方法分析

    php與javascript正則匹配中文的方法分析

    這篇文章主要介紹了php與javascript正則匹配中文的方法,結(jié)合實(shí)例形式分析了針對(duì)utf-8與GBK編碼情況下的php、javascript正則匹配中文操作技巧,需要的朋友可以參考下
    2017-03-03

最新評(píng)論

古蔺县| 五大连池市| 开化县| 临城县| 运城市| 榆树市| 邢台县| 五家渠市| 鹤壁市| 循化| 永新县| 岳西县| 赣榆县| 应城市| 永吉县| 阜平县| 禄丰县| 十堰市| 定州市| 双流县| 通海县| 攀枝花市| 江油市| 南京市| 尼玛县| 泾阳县| 娄底市| 北京市| 虞城县| 大田县| 旬邑县| 盖州市| 西林县| 仙居县| 兴文县| 连山| 汕尾市| 调兵山市| 东方市| 乐都县| 聊城市|