用于确定时间的正则表达式
Regular expression for determining time
包含分钟和/或秒的时间字符串如下所示
29 分钟 15 秒
分隔符是单个空格。数字没有前导零。分钟或秒部分(但不能同时省略两者)。如果缺少其中一个,则分隔符也会丢失。也就是说,以下是此类时间字符串的所有有效示例:
1米
47秒
1 分钟 15 秒
12 分钟 4 秒
我需要构造一个正则表达式,该表达式将分别在 $1 和 $2 中返回分钟数和秒数。我正在编写一个JavaScript程序,但它正在构造我有问题的正则表达式 - 而不是实际的编程。
这将仅匹配以分钟和秒为单位的数字:
/(?:('d+)m)? ?(?:('d+)s)?/
如果我
理解正确的话:
var s = '29m 15s';
var r = /(?:('d+)m)?'s*(?:('d+)s)?/;
var m = s.match(r);
这将产生如下数组:
[ '29m 15s', '29', '15', index: 0, input: '29m 15s' ]
其中 m[1] 是分钟,m[2] 秒(这个是可选的)
这比其他答案更详细,但确实强制执行空格。此外,它还确保数字长度不超过 2 个字符。
/^(?:('d{1,2})m) (?:('d{1,2})s)$|^('d{1,2})[ms]$/
"13m 20s" //match
"13m" //match
"20s" //match
"13m20s" //no match
相关文章:
- 这个正则表达式的日期/时间有什么问题
- 为什么这个正则表达式需要这么长时间才能执行
- JavaScript 中的正则表达式来捕获时间字符串
- 用于检查时间格式的 JavaScript 正则表达式
- 用于确定时间的正则表达式
- Javascript/jQuery使用正则表达式搜索“分钟:秒”时间
- 时间正则表达式
- 如何使用正则表达式(正则表达式)验证 12 小时时间
- 使用正则表达式的JavaScript时间格式转换
- 如何修改时间正则表达式
- 12 小时时间格式的正则表达式
- 时间格式的 JavaScript 正则表达式验证问题
- 如何在没有正则表达式的情况下将 dd-MM-yyyy HH:mm:ss 转换为 Javascript 中的纪元时间
- 时间格式的正则表达式,如 DD:HH:MM:SS
- 如何在Javascript中使用AM/PM创建时间正则表达式
- 用于验证时间的正则表达式
- 使用JS正则表达式删除时间戳
- 使用正则表达式进行时间戳验证.jQuery UI
- 用正则表达式验证时间格式
- 使用正则表达式检查时间