You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则从JavaScript字符串中提取所有H:MM格式24小时制时间戳

JavaScript 从混合字符串中提取24小时制时间戳方案

你当前使用的正则^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$ 加了^(字符串开头)和$(字符串结尾)锚点,仅适用于校验整个字符串完全符合时间格式的场景,无法从包含其他内容的字符串中提取时间子串。适配你的需求需要做两处调整:

  • 去掉首尾的^和$锚点,允许匹配字符串任意位置的时间片段
  • 正则末尾添加全局匹配标识g,开启全局匹配才能一次性拿到所有符合规则的时间,不会仅返回第一个匹配结果

可直接运行的代码示例

// 原始输入字符串
const inputStr = "FooBar Examplestring 4:34 - 12:30";
// 适配提取场景的正则,添加\b单词边界避免误匹配带前缀数字的非法时间
const timeReg = /\b(?:[01]?\d|2[0-3]):[0-5]\d\b/g;
// 提取所有符合规则的时间
const matchedTimes = inputStr.match(timeReg);

console.log(matchedTimes); // 输出:['4:34', '12:30']

补充说明

  • 正则中的\d等价于[0-9],写法更简洁
  • ?:用于标记非捕获组,避免返回多余的分组匹配结果,降低性能开销
  • 单词边界\b可以避免匹配到x3:45、123:45这类不符合规则的内容,如果你的场景中允许时间前后接非空格的其他字符,可以去掉\b

内容的提问来源于stack exchange,提问作者tzippy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:15:04