目前我正在使用谷歌API来计算距离和持续时间,这可以很好地工作到一个字符串,但是我不想将这些数据存储为:
2 hours 10 mins
是否可以在几分钟内轻松转换此格式? (130)
我的逻辑是从字符串中提取数字,所以值等于210,然后对此进行一些数学计算:
var dur = screen.LabourAllocation.Duration;
var dura = dur.match(/\d/g);
dura = dura.join("");
其他人可以提出比这更好的方法吗?如果没有我可以做什么计算将210转换为分钟(130)?
感谢您的帮助
答案 0 :(得分:2)
你必须获得所有数字部分,你的正则表达式只能逐个捕获数字,所以你需要/\d+/g
,然后是简单的数学。
var dur = "2 hours 10 mins";
var dura = dur.match(/\d+/g); // take all "grouped" number
// dura ["2", "10"]
dura = dura[0] * 60 + (+dura[1]);
// first one is hours , second one need to be converted to number