删除日期字符串中的前导零

时间:2012-01-17 15:31:58

标签: javascript

我有一个如下日期字符串:2011-02-03。 我想删除字符串的日期和月份中的前导零。我该怎么做?

4 个答案:

答案 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