繁体   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