在 Javascript 中,将字符串化日期转换为 'YYYY.MM.DD' 格式的最佳做法是什么?

in Javascript, what is the best practice to convert stringified date to 'YYYY.MM.DD' format?

比如我得到字符串'20201101'

我所做的是将字符串转换为 '2020.11.01'

这是我所做的。

const dateString = '20201101'

const dateArr = dateString.split('')

dateArr.splice(4, 0, '.')
dateArr.splice(7, 0, '.')

const dateFormat = dateArr.join('')

我觉得它有点长,所以我正在寻找另一个答案。

谢谢!

您可以使用 template literals.

`${dateString.slice(0, 4)}.${dateString.slice(4, 6)}.${dateString.slice(6, 8)}`

这不是一种非常干净的方法,但它只有一行。

您也可以使用 RegExp with replacement patterns in a String#replace() 调用。

const dateStr = '20201101';

const result = dateStr.replace(/(\d{4})(\d{2})(\d{2})/, '..');

console.log(result)

您的代码很好,可读性强。但是,如果您正在寻找替代方案,请查看 regular expressions.

const str = '20201101';

// Group four digits, then two digits,
// and then two digits
const re = /(\d{4})(\d{2})(\d{2})/;

// `match` returns an array of groups, the first element of
// which will be the initial string, so first remove that,
// and then `join` up the remaining elements using
// a `.` delimiter
const out = str.match(re).slice(1).join('.');

console.log(out);

其他文档