2013-07-02 106 views
-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 

我试了很多正则表达式,都没有工作。

这怎么办?

+3

这个问题是题外话题,因为问题必须**展示对所解决问题的最小理解**。告诉我们你试图去做什么,为什么它没有工作,以及它应该如何工作。另请参阅:[堆栈溢出问题清单](http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist) – HamZa

+3

您使用哪种语言? –

+2

我不明白这里的近距离投票。我们现在期望每个人都知道如何解决这个问题吗?这里有一些失败的正则表达式不会使问题更好。 –

回答

-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') 
+0

-1不起作用 – mate64

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如果存在。
+0

-1不起作用 – mate64

相关问题