【发布时间】:2012-01-17 15:31:57
【问题描述】:
我有一个日期字符串,如下所示:2011-02-03。 我想删除字符串的日期和月份部分中的前导零。我该怎么做?
【问题讨论】:
标签: javascript
我有一个日期字符串,如下所示:2011-02-03。 我想删除字符串的日期和月份部分中的前导零。我该怎么做?
【问题讨论】:
标签: javascript
"2011-02-03".replace(/-0+/g, '-'); // => "2011-2-3"
[更新]
根据@Lucky 的问题,您可以考虑其他可能有前导零的格式:
"02-03".replace(/(^|-)0+/g, "$1"); // => "2-3"
【讨论】:
"2011-002-03".replace(/-0+/g, '-');
最简单的做法是在- 上拆分字符串,然后如果索引 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];
【讨论】:
如果您不想使用 substring 方法,可以使用库 http://www.datejs.com/,它为您提供了很多格式化选项。
【讨论】:
没有正则表达式:
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
【讨论】: