我为这个问题道歉,因为我已经发布了一个类似的问题,但我想知道如何进行以下转换:
PT11H9M38.7876754S
我想禁用秒,只显示小时和分钟 11:09
当我有时间显示从 1 到 9 的分钟时,我想在数字前面添加一个 0
Tnx 的建议...
我为这个问题道歉,因为我已经发布了一个类似的问题,但我想知道如何进行以下转换:
PT11H9M38.7876754S
我想禁用秒,只显示小时和分钟 11:09
当我有时间显示从 1 到 9 的分钟时,我想在数字前面添加一个 0
Tnx 的建议...
你可以试试这个:
var str = 'PT11H9M38.7876754S'
match = str.match(/(\d*)H(\d*)M/),
formatted = match[1] + ':' + (!match[2][1] ? 0 + match[2] : match[2]);
console.log(formatted); // => 11:09
"PT11H9M38.78767545".replace(/PT(\d+)H(\d+)M.*/,function(m,a,b) {return a+":"+(b.length<2?"0":"")+b;});
单线:p
由于所有好的RegExp东西都在上面,所以第三种解决方案在解析方面有点贵,但你可能正在寻找不同的东西。
您可以使用该split
函数来解析字符串并提取您需要的部分。
var pt="PT11H9M38.7876754S";
function showtime(s){
var time = s.split('.');
var hours = time[0].split('T')[1].split('H')[0];
var minutes = time[0].split('H')[1].split('M')[0];
return digitize(hours) + ":" + digitize(minutes)
}
function digitize(i){
return (i>9) ? i : "0" + i;
}
alert(showtime(pt)); // 11:09