javascript - 如何使用正则表达式从字符串中提取所有 24 小时时间?
问题描述
我想提取字符串中的所有 24 小时时间。
我想从中提取时间的字符串示例可能是:
The image has been uploaded at 20:12 and viewed at 21:04 and later was deleted around 23:43
我想从这个示例字符串中提取 3 次:
- 20:12
- 21:04
- 23:34
我试过这种模式:
^(([1-9]{1})|([0-1][0-9])|([1-2][0-3])):([0-5][0-9])$
但它似乎只验证时间是否正确。
解决方案
你可以使用
let string = `The 30:1234 image has been uploaded at 20:12 and viewed at 21:04 and later was deleted around 23:43`;
let rx = /(\d+):(\d+)/g;
let match;
while ((match = rx.exec(string)) !== null) {
if ((match[1] >= 0 && match[1] <= 24) && (match[2] >= 0 && match[2] <= 60)) {
console.log(match[0]);
}
}
在这里,您匹配任何模式digits:digits
并验证它们在之后的正确范围内JavaScript
。因此,例如30:1234
将被忽略。
推荐阅读
- django - Django 模型组织:不同杂货店的食品位置
- r - 在 R 中为 networkD3 包创建列表时遇到问题
- batch-file - CMD 上的批处理脚本以获取变量上的 COM 端口
- javascript - 如何使用AngularJS过滤器获取数组索引
- python - 在 Keras 中使用自定义指标函数时出错
- django - Django-Celery 在 Windows Server 上安排日常任务
- ms-access - 附加查询 Access 2016 时超出系统资源
- php - 循环遍历 PHP 数组,优先循环遍历哪个数组
- c++ - 在 Qstring 中插入一个整数变量作为参数并将其发送到 Serial.write
- python - Pandas:根据来自另一个数据帧的值更新数据帧中的多个列