【发布时间】:2016-12-17 16:13:08
【问题描述】:
我有一个这种格式的日期值:20160810
我需要将其拆分为正确的日期格式,如下所示:2016-08-10
在 jquery 中,我将如何实现这一点?我不能使用 split() 因为它必须有一个分隔符来引用,所以我不确定是否有一个可以根据字符数进行拆分的函数。
【问题讨论】:
我有一个这种格式的日期值:20160810
我需要将其拆分为正确的日期格式,如下所示:2016-08-10
在 jquery 中,我将如何实现这一点?我不能使用 split() 因为它必须有一个分隔符来引用,所以我不确定是否有一个可以根据字符数进行拆分的函数。
【问题讨论】:
使用String#replace方法
var res = '20160810'.replace(/(\d{4})(\d{2})(\d{2})/, '$1-$2-$3')
console.log(res);
或者用String#slice方法
var str = '20160810';
var res = str.slice(0, 4) + '-' + str.slice(4,6) + '-' + str.slice(-2);
console.log(res);
【讨论】:
如果你不喜欢用 RegExp 做事:
var dateArray = '20160810'.split('')
var year = dateArray.slice(0,4).join('')
var month = dateArray.slice(4,6).join('')
var day = dateArray.slice(6).join('')
console.log([year, month, day].join('-'))
【讨论】:
早安!
也许您尝试使用 substr() 函数。此函数根据开始和结束 charindex 从字符串中删除子字符串:
var string = "20160810";
var date = string.substr(0,3)+"-"+string.substr(4,5)+"-"+string.substr(6,7);
这也可以使用正则表达式:
var string = "20160810";
var date = string.replace(/(\d{4})(\d{2})(\d{2})/, '$1-$2-$3'); //2016-08-10
在第二个示例中,您使用捕获组来捕获三个不同长度的小数,并将它们替换为用- 分隔的自身。
希望能帮到你!
【讨论】:
你也可以使用momentjs:
> moment("20160810", "YYYYMMDD").format("YYYY-MM-DD")
'2016-08-10'
【讨论】: