【发布时间】:2014-02-04 12:54:42
【问题描述】:
我一直试图在 JavaScript 中匹配来自谷歌日历 xml 提要的各种日期,但我失败了。
目前我有这个正则表达式:
\s(.*)\s
以下是一些字符串示例(每个代码块都是一个字符串),我需要在其中获取匹配项(注意斜线和换行符):
字符串 1:
When: Thu Jan 9, 2014 1:50pm to 2:45pm
GMT<br />
<br />Where: Hall A
<br />Event Status: confirmed</content>
字符串 2:
When: Mon Jan 4, 2014<br />
<br />Event Status: confirmed</content>
字符串 3:
When: Mon Oct 27, 2013 to Fri Nov 1, 2013
<br />
<br />Event Status: confirmed</content>
字符串 4:
When: Tue Oct 15, 2013 3:30pm to 7:30pm
BST<br />
<br />Event Status: confirmed
<br />Event Description: Please complete a booking.&#39;s teacher.</content>
字符串 5:
When: Mon Apr 21, 2014 to Fri Apr 25, 2014
<br />
<br />Event Status: confirmed</content>
所以我只想匹配格式为“Day Mon dd,year”或“Day Mon dd,year time”的日期。我不想要那之后的部分。我不需要“to”部分。
所以如果一个带时间的日期存在,它应该匹配,如果时间不存在,那么它应该只匹配日期。
我对正则表达式非常陌生,并不真正知道如何去做。我打算买一本关于它的书好好学习,但我必须尽快解决这个问题。
如果有人能帮助我,我将非常感激。
【问题讨论】:
-
如果他们向您发送 XML...请使用 XML 解析器而不是 RegEx,如果您想指定后端语言,我可以进一步提供帮助,或者您可以使用 JavaScript XML 解析 stackoverflow.com/questions/4200913/xml-to-javascript-object
-
感谢您的评论。我只是尝试使用解析器,现在我得到了一个 JSON 对象。我试图打印出 object.feed.entry.summary 值,我得到了这个:时间:2014 年 1 月 9 日星期四 13:45 到 14:45 格林威治标准时间
地点:艺术室
活动状态:已确认 如您所见,它仍然不仅仅是一个日期。也许我只是不知道如何从对象中获取日期值。问题是我试图不在这里公开发布实际的提要。可能会让您难以看到实际 xml 的外观。 -
在没有实际提要或演示提要的情况下更正我无法帮助您解析对象。但是,由于它是一个 JS 对象,只需在控制台中使用您的对象上格式化的
.即可查看其中的内容。 Chrome > 开发者工具 > 控制台 >object它会告诉你一切
标签: javascript regex match