繁体   English   中英

谷歌日历的正则表达式 API 日期 output

[英]Regex for Google Calendar API date output

我有一个包含日期的字符串,它有很多格式的可能性。 我匹配它的正则表达式变得荒谬而冗长。 我希望学习更简洁的表达方式。 以下是各种格式。 我想将每个日期作为自己的匹配项:

Sat Jul 16, 2011
Sat Jul 16, 2011 6pm to 8pm
Sat Jul 16, 2011 6pm to 8:30pm
Sat Jul 16, 2011 6:30pm to 8pm
Sat Jul 16, 2011 6:30pm to 8:30pm

Sat Jul 16, 2011 to Sun Jul 17, 2011
Sat Jul 16, 2011 6pm to Sun Jul 17, 2011 8pm
Sat Jul 16, 2011 6:30pm to Sun Jul 17, 2011 8pm
Sat Jul 16, 2011 6pm to Sun Jul 17, 2011 8:30pm
Sat Jul 16, 2011 6:30pm to Sun Jul 17, 2011 8:30pm

在我来这里问之前,我已经达到了这一点:

([A-Z]{1}[a-z]{2} [A-Z]{1}[a-z]{2} [0-9]{1,2}, [0-4]{4} [0-9]{1,2}[ap]{1}m)( to ([A-Z]{1}[a-z]{2} [A-Z]{1}[a-z]{2} [0-9]{1,2}, [0-4]{4} [0-9]{1,2}[ap]{1}m))?

它将返回第一个日期,如果存在则返回第二个日期,但仅适用于这种格式: Sat Jul 16, 2011 6pm to Sun Jul 17, 2011 8pm 那太荒谬了。

编辑:

有人建议我检查日期的“到”部分,并在每一侧运行正则表达式,而不是试图一次考虑所有情况。 仍在为它的每一面寻找更简洁的解决方案,但这将有很大帮助。

按照建议将日期分成两半,然后使用date.js解析两半。 然后是 Date.parse('Sat Jul 16, 2011 6:30pm')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM