簡體   English   中英

RFC 2822和ISO 8601日期格式正則表達式

[英]RFC 2822 and ISO 8601 date format regex

在JavaScript中,有Date.parse()方法,該方法解析表示RFC 2822ISO 8601日期的字符串( 請參見MDN )。 在網絡上的各種來源中,最可靠,最全面的正則表達式能夠(分別)匹配那些日期格式是什么?

更新:如果沒有合理的方法來獲取全面的正則表達式以完全匹配這些格式,則至少這些特定 RFC和ISO格式的模式是什么, Date.parse()方法可以正確地接受和理解。

我認為答案是要說沒有一個與RFC 2822或ISO 8601中列出的所有格式都匹配的正則表達式或者說是一個很棘手和困難的主意)。對於所有格式都使用正則表達式並不是一種安全且好的方法。 但是,如果您有任何特定格式,則可以,我們可以使用regex

您可以檢查date.jsmoment.js

編輯:

相同的MDN表示:

參數

dateString一個字符串,代表RFC822ISO 8601日期。

描述

parse方法采用日期字符串(例如“ 1995年12月25日”),並返回自1970年1月1日UTC 00:00:00以來的毫秒數。 本地時區用於解釋不包含時區信息的參數。 此功能對於基於字符串值設置日期值很有用,例如,結合setTime方法和Date對象。

給定一個表示時間的字符串,解析返回時間值。 它接受RFC822 / IETF日期語法 (RFC 1123第5.2.14節和其他地方), 例如“ Mon,25 Dec 1995 13:30:00 GMT” 它了解美國大陸時區的縮寫,但通常使用時區偏移量,例如“ Mon,25 Dec 1995 13:30:00 GMT + 0430”(格林尼治以東4小時30分鍾)子午線)。 如果您未指定時區,則采用本地時區。 GMT和UTC被認為是等效的。

或者,日期/時間字符串可以是ISO 8601格式 從JavaScript 1.8.5 / Firefox 4開始,支持ISO 8601的子集。 例如,可以傳遞和解析“ 2011-10-10”(日期)或“ 2011-10-10T14:48:00(日期和時間) 。尚不支持ISO日期中的時區,因此,例如“ 2011- 10-10T14:48:00 + 0200“(帶時區)尚未提供預期的結果。

這里

此格式包括僅日期形式:

  • YYYY
  • YYYY-MM
  • YYYY-MM-DD

...

所有數字都必須以10為底。如果缺少MM或DD字段,則將“ 01”用作值。 如果缺少mm或ss字段,則將“ 00”用作值,將不存在的sss文件的值設為“ 000”。 缺少時區偏移的值為“ Z”。

也檢查一下

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM