Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从时间格式中删除前导零_Javascript_Regex_Time - Fatal编程技术网

Javascript 从时间格式中删除前导零

Javascript 从时间格式中删除前导零,javascript,regex,time,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您可以这样做: var tc=['00:03:15'、'10:10:10'、'00:00:00'、'04:00:00'、'00

我收到一个格式为
'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

您可以这样做:

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(功能(t){
变量y=t.split(“:”);
y[0]=y[0]。替换(/^[0]+/g',);
如果(y[0]=''){
y[1]=y[1]。替换(/^0/g');
}
var r=y.filter(函数(p){return p!='';});
控制台日志(r);

});您可以使用此替换:

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

或者更好:

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


要处理Matt示例(请参见注释),可以将模式更改为:

^[0:]+(?=\d[\d:]{3})

另一个选项是使用矩.js库

这支持以下格式:

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

如果使用1小时而不是2小时,则不会得到前导0


h:mm:ss

返回
:00:00
0:00:00
@Matt:问题:“我收到一个格式为'HH:mm:ss'的字符串”我的坏,公平enough@Matt:别担心,你给了我机会来改进我的答案。它是否仍能工作数小时,比如10小时:00@NickGallimore是的,是的!