正则表达式从时间字符串中删除秒

时间:2013-07-02 09:21:51

标签: regex

我想从时间字符串中删除秒数,格式为HH:MM:SS,可能有空格,最后是“am / pm”。

For example: 11:34:41 pm to 11:34pm
For example: 11:34:41pm to 11:34pm
For example: 11:34:41 to 11:34

我尝试过很多正则表达式,但都没有。

如何做到这一点?

2 个答案:

答案 0 :(得分:2)

这将匹配2个数字,后跟冒号,后跟2个数字:

\d{2}:\d{2}

这对你来说可能已经足够了。但是,如果您还希望匹配可能的秒数和/或am / pm,但不捕获它们,请使用以下内容:

(\d{2}:\d{2})(?::\d{2})?(?:am|pm)?
  • (\d{2}:\d{2})将执行与第一个正则表达式相同的匹配并捕获结果。
  • (?::\d{2})?将匹配秒数(如果存在)。
  • (?:am|pm)?将匹配ampm(如果有)。

答案 1 :(得分:-1)

你可以使用这个:

/:\d\d([ ap]|$)/

这个想法是匹配:\d\d,当它跟着字符串的结尾或空格时。

您可以在浏览器中输入以下内容进行测试:

'11:34:41'.replace(/:\d\d([ ap]|$)/,'$1')

'11:34:41 pm'.replace(/:\d\d([ ap]|$)/,'$1')

'11:34:41pm'.replace(/:\d\d([ ap]|$)/,'$1')