我想从时间字符串中删除秒数,格式为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
我尝试过很多正则表达式,但都没有。
如何做到这一点?
答案 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)?
将匹配am
或pm
(如果有)。答案 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')