我有这种格式的日期值:20160810
我需要将其拆分为正确的日期格式,如下所示:2016-08-10
在jquery中,我将如何实现这一目标?我不能使用split(),因为它必须有一个分隔符来引用,所以我不确定是否有一个可以根据字符数进行分割的函数。
答案 0 :(得分:5)
使用 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);

答案 1 :(得分:1)
如果你不使用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('-'))
答案 2 :(得分:1)
早上好!
也许您尝试使用 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
在第二个示例中,您使用捕获组捕获三个不同长度的小数,并将它们替换为以-
分隔的自身。
我希望我能帮忙!
答案 3 :(得分:1)
您也可以使用momentjs:
> moment("20160810", "YYYYMMDD").format("YYYY-MM-DD")
'2016-08-10'