我只需要从如下所示的字符串中提取最后 日期:
第 1 周:03/06/11 - 03/13/11\n
我可以使用什么正则表达式来获取“03/13/11”?
最佳答案
您可以使用正则表达式来匹配第一个和第二个日期,然后仅引用第二个匹配项:
var str = "Week 1: 03/06/11 - 03/13/11\n";
var secondDate;
var matches = str.match(/(\d+\/\d+\/\d+)\s*-\s*(\d+\/\d+\/\d+)/);
if (matches) {
secondDate = matches[2];
}
在回答您的其他问题时,匹配“03/13/11”的特定正则表达式是:
/\d+\/\d+\/\d+/
这意味着:
one or more digits
followed by a /
followed by one or more digits
followed by a slash
followed by one or more digits.
在这里使用正则表达式的好处是,您可以更轻松地为可变间距、第二个日期后的字符串中的字符等构建灵 active ......例如,这个正则表达式适用于所有这些:
Week 1: 03/06/11 - 03/13/11\n
Week 1: 3/06/11 - 3/13/11\n
Week 1: 3/06/2011 - 3/13/2011\n
Week 1: 3/6/11 - 3/13/11\n
Week 1: 03/06/11 - 03/13/11
Week 1: 03/06/11-03/13/11\n
Week - 1: 03/06/11 - 03/13/11\n
Week 1: 03/06/11 - 03/13/11 and Week 2: 03/014/11 - 03/18/11
此外,matches[1] 也是第一个日期,因此如果有帮助,您也可以使用正则表达式获得两个日期。
使用 split
或 indexOf
提供的其他方法不一定具有自动处理所有这些不同格式的灵 active 。
关于javascript - 如何使用正则表达式在 javascript 的字符串中获取两个日期中的第二个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7772677/