我有一个如下日期字符串:2011-02-03。 我想删除字符串的日期和月份中的前导零。我该怎么做?
答案 0 :(得分:9)
"2011-02-03".replace(/-0+/g, '-'); // => "2011-2-3"
<强> [更新] 强>
Per @ Lucky的问题,您可以考虑其他可能具有前导零的格式:
"02-03".replace(/(^|-)0+/g, "$1"); // => "2-3"
答案 1 :(得分:0)
这种天真的方法是将字符串拆分为-
,然后如果索引1或2的值以0开头,则将所有0替换为''。像(我没有测试过)
var tokens = '2011-02-03'.split('-'),
mm = tokens[1],
dd = tokens[2];
if (mm.charAt(0) === '0') tokens[1] = mm.replace("0", "");
if (dd.charAt(0) === '0') tokens[2] = dd.replace("0", "");
var newString = tokens[0] + "-" tokens[1] + "-" + tokens[2];
答案 2 :(得分:0)
如果您不想使用子字符串方法,可以使用库http://www.datejs.com/,它可以为您提供大量格式选项。
答案 3 :(得分:0)
没有正则表达式:
function stripLeadingZerosDate(dateStr){
return dateStr.split('-').reduce(function(date, datePart){
return date += parseInt(datePart) + '-'
}, '').slice(0, -1);
}
stripLeadingZerosDate('01-02-2016') // 1-2-2016
stripLeadingZerosDate('2016-02-01') // 2016-2-1