【问题标题】:Extract time range [closed]提取时间范围
【发布时间】:2017-06-15 18:15:10
【问题描述】:

需要一些正则表达式帮助以从以下字符串中提取时间:

3:00 am - 4:00 pm 转换数据等等等等

凌晨 3:00 转换数据等等等等

以下正则表达式适用于第一种格式,但不适用于第二种格式:/\d{1,2}:\d\d\s([AaPp][Mm])?\s?-?\s\d{1,2}:\d\d\s([AaPp][Mm])/g

【问题讨论】:

标签: javascript regex


【解决方案1】:

修饰符g 允许查找所有匹配项。因此,您可以简化您的表达。此外,修饰符 i 允许不区分大小写的匹配。

/\d{1,2}:\d{2}\s(am|pm)/gi

这是如何使用的:

var str = '3:00 am - 4:00 pm Transform data blah blah blah', 
times = str.match(/\d{1,2}:\d{2}\s(am|pm)/gi);
console.log(times);

times 将是一个包含匹配项的数组。

【讨论】:

  • 为什么投反对票?这个答案有什么不妥?
  • 嘿洛伦兹,感谢您的帮助。它只过滤开始日期
  • @indu527 我很惊讶。当我执行上述代码时,console.log 将输出两个日期。重新考虑您的投票。
  • 没关系,它很好用!很抱歉造成混乱。
  • 我没有投反对票。别人做了。再次感谢您的帮助。
猜你喜欢
  • 2018-10-29
  • 2019-01-20
  • 1970-01-01
  • 2021-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多