从时间格式中删除前导零

时间:2017-03-18 19:43:29

标签: javascript regex time

我收到的格式为'HH:mm:ss'。我想删除前导零,但始终保留最后四个字符,例如m:ss,即使m为零。我正在格式化音频持续时间。

示例:

00:03:15 => 3:15
10:10:10 => 10:10:10
00:00:00 => 0:00
04:00:00 => 4:00:00
00:42:32 => 42:32
00:00:18 => 0:18
00:00:08 => 0:08

4 个答案:

答案 0 :(得分:7)

您可以使用此替代品:

var result = yourstr.replace(/^(?:00:)?0?/, '');

demo

或更好:

var result = yourstr.replace(/^0(?:0:0?)?/, '');

demo

答案 1 :(得分:1)

另一种选择是使用moment.js库。

这支持

之类的格式
var now = moment('1-1-1981 2:44:22').format('h:mm:ss');
alert(now);

http://jsfiddle.net/8yqxh5mo/

答案 2 :(得分:1)

如果您使用1小时而不是2小时,您将不会获得前导0。

h:mm:ss

答案 3 :(得分:0)

你可以这样做:

var tc =['00:03:15', '10:10:10','00:00:00','04:00:00','00:42:32','00:00:18','00:00:08'];

tc.forEach(function(t) {
    var y = t.split(":");
    y[0] = y[0].replace(/^[0]+/g, '');
    if(y[0] === '') {
        y[1] = y[1].replace(/^0/g, ''); 
    }
    var r = y.filter(function(p) {return p!=='';}).join(':');
    console.log(r);
});

将时间分为3个部分。从第一部分移除前导零,如果第一部分为空,则从第二部分移除前导零,否则保留它。然后加入所有人丢弃空字符串。