Javascript 如何将timespan字符串解析为小时,分钟?
我有一个字符串“P18DT5H2M3S”,意思是:18天5小时2分3秒 我必须将这个字符串解析为小时和分钟。我应该使用正则表达式还是拆分或substr等Javascript 如何将timespan字符串解析为小时,分钟?,javascript,regex,parsing,timespan,Javascript,Regex,Parsing,Timespan,我有一个字符串“P18DT5H2M3S”,意思是:18天5小时2分3秒 我必须将这个字符串解析为小时和分钟。我应该使用正则表达式还是拆分或substr等 (关于这一点)你想用什么就用什么 下面是使用带有正则表达式的split方法的示例 var res=“P18DT5H2M3S”; var标记=res.split(/[A-Z]+/); //var str=“D:”+token[1]+“H:”+tokens[2]+“M:”+tokens[3]+“S:”+tokens[4]; 警报(“D:+toke
(关于这一点)你想用什么就用什么 下面是使用带有正则表达式的split方法的示例
var res=“P18DT5H2M3S”;
var标记=res.split(/[A-Z]+/);
//var str=“D:”+token[1]+“H:”+tokens[2]+“M:”+tokens[3]+“S:”+tokens[4];
警报(“D:+tokens[1]+“H:+tokens[2]+“M:+tokens[3]+“S:+tokens[4])代码>我找到了这个页面:
所以当我添加到这个js中时
我可以皈依
持续时间=力矩.持续时间.fromIsoduration('P18DT5H2M3S');
持续时间。\u可以使用数据
它有天、小时、分钟,所以我接受了@chandil03的答案,并对其进行了调整,以返回HH:MM:SS格式
var stamp=“PT2H10M13S”
//剥去包皮
邮票=邮票分割(“PT”)[1];
//在每个字符处拆分
var标记=stamp.split(/[A-Z]+/);
//如果缺少任何部分时间,请用空字符串填写。
//例如我们想要的“13S”[“”、“”、“”13、“”]
对于(变量i=0;i<4-stamp.length;i++){
代币。取消移位(“”);
}
//这里我们添加逻辑来填充需要0前缀的值。
var stampFinal=tokens.map(函数(t){
如果(t.长度<2){
如果(!isNaN(数字(t))){
返回(“0”+数字(t).toString());
}
}
返回t;
});
//弹出最后一个元素,因为它是额外元素。
stampFinal.pop();
console.log(stampFinal.join(“:”)代码>请根据inoabrian找到我的解决方案
function fromString(timeSpan) {
var hours = 0;
var minutes = 0;
var seconds = 0;
if (timeSpan != null && typeof (timeSpan) == 'string' && timeSpan.indexOf('PT') > -1) {
timeSpan = timeSpan.split("PT")[1].toLowerCase();
var hourIndex = timeSpan.indexOf('h');
if (hourIndex > -1)
{
hours = parseInt(timeSpan.slice(0, hourIndex));
timeSpan = timeSpan.substring(hourIndex + 1);
}
var minuteIndex = timeSpan.indexOf('m');
if (minuteIndex > -1)
{
minutes = parseInt(timeSpan.slice(0, minuteIndex));
timeSpan = timeSpan.substring(minuteIndex + 1);
}
var secondIndex = timeSpan.indexOf('s');
if (secondIndex > -1)
seconds = parseInt(timeSpan.slice(0, secondIndex));
}
return [hours, minutes, seconds];
}
除非我弄错了,否则这个字符串是一个持续时间。也就是说,使用支持此标准的库,例如。是。我找到了这个链接。非常感谢你