如何用JS正则匹配HH:MM:ss格式字符串中除分钟数外的内容?
解决HH:MM:ss格式字符串匹配除分钟外所有部分的JS正则方案
针对HH:MM:ss格式(如"123:59:00")的耗时字符串,要匹配除分钟数外的所有内容,以下是两种适用于Notion Formula API的JS正则实现思路:
思路1:直接匹配非分钟部分
使用全局正则匹配小时段(含冒号)和秒时段(含冒号),具体正则如下:
/^\d+:|:\d{2}$/g
正则说明
^\d+::匹配字符串开头的任意位数数字(小时)加上冒号|:逻辑或,匹配前后任意一种模式:\d{2}$:匹配字符串结尾的冒号加上两位数字(秒数)g:全局修饰符,确保匹配所有符合条件的部分
在JS/Notion Formula中使用示例:
// 假设时间字符串来自名为"耗时"的属性 prop("耗时").match(/^\d+:|:\d{2}$/g)
执行后会得到数组结果,比如对"123:59:00"会返回["123:", ":00"],若需要拼接成完整字符串,可使用join(''):
prop("耗时").match(/^\d+:|:\d{2}$/g).join('') // 结果为"123::00"
思路2:移除分钟部分(更适合Notion Formula场景)
如果目标是得到移除分钟后的完整字符串,可使用replace函数配合正则匹配并替换分钟部分:
replace(prop("耗时"), /:\d{2}(?=:)/, "")
正则说明
:\d{2}:匹配冒号加两位数字(分钟部分的冒号和数字)(?=:):正向先行断言,确保匹配的内容后面紧跟着另一个冒号(避免误匹配小时后的冒号)
执行后,"123:59:00"会直接变为"123::00",即保留了除分钟外的所有原始内容结构。
内容的提问来源于stack exchange,提问作者40detectives
相关产品推荐
相关产品推荐

