Javascript RFC 2822和ISO 8601日期格式正则表达式

Javascript RFC 2822和ISO 8601日期格式正则表达式,javascript,regex,datetime-format,iso,rfc,Javascript,Regex,Datetime Format,Iso,Rfc,在JavaScript中有一个Date.parse()方法,它解析表示或日期()的字符串。在web上的各种来源中,能够匹配这些日期格式(单独)的最可靠、最全面的正则表达式是什么 更新: 如果没有合理的方法让全面的正则表达式完全匹配这些格式,至少这些特定的RFC和ISO格式的模式是什么,Date.parse()方法接受并正确理解。我想答案应该是说没有单一的正则表达式(或者说,这是一个坏主意,因为这将是非常棘手和困难的)它将匹配RFC 2822或ISO 8601中列出的所有格式。而且,对于所有格式使

在JavaScript中有一个
Date.parse()
方法,它解析表示或日期()的字符串。在web上的各种来源中,能够匹配这些日期格式(单独)的最可靠、最全面的正则表达式是什么

更新:
如果没有合理的方法让全面的正则表达式完全匹配这些格式,至少这些特定的RFC和ISO格式的模式是什么,
Date.parse()
方法接受并正确理解。

我想答案应该是说没有单一的正则表达式(或者说,这是一个坏主意,因为这将是非常棘手和困难的)它将匹配RFC 2822或ISO 8601中列出的所有格式。而且,对于所有格式使用正则表达式也不是一个安全和好的方法。但是,如果您有任何正则表达式的话

你可以检查一下

编辑:

同样的MDN说:

参数
dateString
表示RFC822ISO 8601日期的字符串

描述 parse方法接受一个日期字符串(例如“Dec251995”)和返回自1970年1月1日00:00:00 UTC以来的毫秒数。本地时区用于解释不包含时区信息的参数。此函数用于基于字符串值设置日期值,例如与setTime方法和date对象结合使用

给定一个表示时间的字符串,parse返回时间值。它接受RFC822/IETF日期语法(RFC 1123第5.2.14节和其他地方),例如,“Mon,Dec 1995 13:30:00 GMT”。它理解美国大陆时区缩写,但对于一般用途,使用时区偏移,例如,“1995年12月25日星期一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(日期和时间)”可以传递和解析。“2011-10-10T14:48:00+0200”(带时区)尚未给出预期结果

此格式包括仅限日期的表格:

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

所有数字必须以10为基数。如果MM或DD字段不存在,则使用“01”作为值。如果MM或ss字段不存在,则使用“00”作为值,并且不存在的sss文件的值为“000”。不存在的时区偏移的值为“Z”


同时检查一下

我认为使用正则表达式是不可能的。使用正则表达式是可能的,它的长度会非常长;而且是一个倒退的噩梦。