javascript - 正则表达式匹配 hh:mm:ss 可选小时
问题描述
我有/^(?:1[0-2]|0[0-9]):[0-5][0-9]:[0-5][0-9]$/
在 PHP 中工作的模式,但是当我尝试在 Js 中使用它时,它不起作用。我只想匹配带有强制前导零的两种格式:00:00:00 或 00:00
解决方案
您需要将包含小时的组放在?
其后面,并将其后面的冒号放入组中。
console.log(/^(?:1[0-2]|0[0-9]:)?[0-5][0-9]:[0-5][0-9]$/.test("00:00:00"));
console.log(/^(?:1[0-2]|0[0-9]:)?[0-5][0-9]:[0-5][0-9]$/.test("00:00"));
我敢打赌你在 PHP 版本中有这个,因为这似乎是首先拥有非捕获组的唯一原因。您可能只是在复制到 Javascript 时错过了它。
推荐阅读
- html - 有人可以帮助获得与给定示例相同的放大效果吗?
- reactjs - 错误消息:如果您打算渲染一组子项,请使用数组而不是 React JS
- python - Scrapy 有时会返回“None”,但并非总是如此
- javascript - 删除数据表中的复选框(JavaScript)
- javascript - prevArrow 和 nextArrow 不适用于多个光滑的滑块
- quarkus - 错误:运算符不存在:字符变化 <> 整数提示:没有运算符匹配给定的名称和参数类型
- firebase - Firebase 与使用 JustHost.com 的自定义域
- javascript - Node JS,RewriteEngine 的 Godaddy 终端问题不起作用
- node.js - 找不到页面呈现而不是快速查看文件
- laravel - 获取由特定用户过滤的所有帖子(而不是 $user->posts() )