string.replace() 正则有个奇怪的问题。

// ??? 这样写会发生错误fmt = fmt.replace(/(Y+)/g, date.getFullYear().toString().substr(-RegExp.$1.length));

完整代码:

'use strict';


function formatDate(date,fmt) {


    if(!(date instanceof Date)) {

        fmt = date;

        date = new Date();

    }


    // fmt = fmt.replace(/(Y+)/g, function() {

    //     return date.getFullYear().toString().substr(-RegExp.$1.length);

    // });


    // ??? 这样写会发生错误

    fmt = fmt.replace(/(Y+)/g, date.getFullYear().toString().substr(-RegExp.$1.length));


    fmt = fmt.replace(/(M+)/g, date.getMonth() + 1);

    fmt = fmt.replace(/(D+)/g, date.getDate());

    fmt = fmt.replace(/(h+)/g, date.getHours());

    fmt = fmt.replace(/(m+)/g, date.getMinutes());

    fmt = fmt.replace(/(s+)/g, date.getSeconds());

    fmt = fmt.replace(/(q+)/g, Math.floor((date.getMonth() + 3)/3));

    fmt = fmt.replace(/(S+)/g, date.getMilliseconds());


    return fmt;

}


console.log(formatDate('YY-M-D h-m-s S-Q'));


蓝山帝景
浏览 875回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript