Regex从时间字符串中删除秒
我想删除时间字符串中的秒,格式是HH:MM:SS,可能是空格,最后是“am/pm”Regex从时间字符串中删除秒,regex,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 我试过很多正则表达式,但都不起作用 如何做到这一点?您可以使用以下方法: /:\d\d([ ap]|$)/ 这样做的目的是匹配:\d\d,当它后跟字符串结尾或空格时 您可以在浏览器中测试它,方法是在控制台中键
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
我试过很多正则表达式,但都不起作用
如何做到这一点?您可以使用以下方法:
/:\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')
这将匹配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