-2

我想从时间字符串中删除秒,格式为 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

我尝试了很多正则表达式,没有一个有效。

如何才能做到这一点 ?

4

2 回答 2

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如果存在。
于 2013-07-02T09:23:33.133 回答
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')
于 2013-07-02T09:23:26.007 回答