sushi8023的gravatar头像
sushi80232017-06-16 15:41:31

求解释下javascript这段代码,if之后的都不是很懂

Date.prototype.format = function(format) {
    var o = {
        "M+" : this.getMonth() + 1, // month 月份0-11所以要加1
        "d+" : this.getDate(), // day
        "h+" : this.getHours(), // hour
        "m+" : this.getMinutes(), // minute
        "s+" : this.getSeconds(), // second
        "q+" : Math.floor((this.getMonth() + 3) / 3), // quarter
        "S" : this.getMilliseconds()
    }

    if (/(y+)/.test(format)) {
        format = format.replace(RegExp.$1, (this.getFullYear() + "")
                .substr(4 - RegExp.$1.length));
    }

    for ( var k in o) {
        if (new RegExp("(" + k + ")").test(format)) {
            format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k]
                    : ("00" + o[k]).substr(("" + o[k]).length));
        }
    }
    return format;
}

所有回答列表(3)
lonesafe的gravatar头像
lonesafe6月19日

第一个if里面是一个正则表达,具体可以百度正则表达

第二个if里面 var k in o 这段的意思是循环o 把每次o[i]的值赋值给k

slamdunk的gravatar头像
slamdunk6月21日

都是正则,查查正则的资料

最代码官方认证的gravatar头像

多看看正则吧牛牛

顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友