前端外包-前端外包是一门艺术之JavaScript封装函数列表(二)

url操作

获取单个url参数

getUrlParam: function (name) {
     //构造一个含有目标参数的正则表达式对象
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    //匹配目标参数
    var r = window.location.search.substr(1).match(reg);
    //返回参数值
    if (r != null) return decodeURI(r[2]); return null;
}
 
 
 
 
// 执行
getUrlParam('id');

获取全部url参数(返回数组)
 

urlGet: function () {
    var aQuery = window.location.href.split("?");//取得Get参数
    var aGET = {}
    if(aQuery.length > 1) {
        var aBuf = aQuery[1].split("&");
        for(var i=0, iLoop = aBuf.length; i<iLoop; i++) {
            var aTmp = aBuf[i].split("=");//分离key与Value
            aGET[aTmp[0]] = decodeURI(aTmp[1]);
        }
    }
    return aGET;
}
// 执行
urlGet();

时间操控

格式化秒时间戳

dateFormat: function (date, format) {
    date = new Date(date * 1000)
    const map = {
        'M': date.getMonth() + 1,
        'd': date.getDate(),
        'h': date.getHours(),
        'm': date.getMinutes(),
        's': date.getSeconds(),
        'q': Math.floor((date.getMonth() + 3) / 3),
        'S': date.getMilliseconds()
    }
    format = format.replace(/([yMdhmsqS])+/g, function (n, i) {
        let v = map[i]
        if (v !== undefined) {
            if (n.length > 1) {
                v = '0' + v
                v = v.substr(v.length - 2)
            }
            return v
        } else if (i === 'y') {
            return (date.getFullYear() + '').substr(4 - n.length)
        }
        return n
    })
    return format
}
// 执行
dateFormat(1558423460,'yyyy-MM-dd h:m');