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是的,是的!