我有一个可以采用以下格式的字符串(数字是示例):
2h34m2s
23m6s
7h8s
4h2m
3h
2m
2s
我最初打算只使用split()
正则表达式来匹配h
,m
和s
. 但是,如果只有一些指标存在(如果它的形式是2m3s
,那么我需要一种方法来知道数组中的第一个条目代表分钟而不是小时)。
我认为正确的解决方案将涉及某种正则表达式,但它目前使我无法理解。任何关于清洁高效解决方案的想法?
编辑:
(我想接受任意数量的数字,所以我没有{1,2}
在正则表达式中使用。
var timeString = $('#interval').val();
var hours = timeString.match('/\d+(?=h)/')[0]; // 2h4m8s
var minutes = timeString.match('/\d+(?=m)/')[0];
var seconds = timeString.match('/\d+(?=s)/')[0];
console.log('hours: ' + hours);
console.log('minutes: ' + minutes);
console.log('seconds: ' + seconds);
控制台正在给出null
这些值。