求个日期格式化方法

var dates = changeDateFormat(["2010/03/30", "15/12/2016", "11-15-2012", "20130720"]);
for (index = 0; index < dates.length; ++index) {
  console.log(dates[index]);
}

输出20100330,20161215,20121115,有啥简单的方法实现

阅读 2k
1 个回答
const changeDateFormat = (() => {
    const handlers = [
        [/\d{4}\/\d{2}\/\d{2}/, s => s.replace("/", "")],
        [/(\d{2})\/(\d{2})\/(\d{4})/, (s, r) => s.replace(r, "$3$2$1")],
        [/(\d{2})-(\d{2})-(\d{4})/, (s, r) => s.replace(r, "$3$1$2")],
        [/./, s => s]
    ];

    return function (arr) {
        return arr.map(s => {
            var [re, fn] = handlers.find(([re]) => re.test(s));
            return fn(s, re);
        });
    };
})();

console.log(changeDateFormat(["2010/03/30", "15/12/2016", "11-15-2012", "20130720"]));
// [ '201003/30', '20161215', '20121115', '20130720' ]
推荐问题