一些常用的工具函数

472 阅读1分钟

判断用户userAgent

let u = navigator.userAgent;
let isiOS = /iPad|iPhone|iPod/i.test(u);
let isAndroid = !isiOS;
let isBiliApp = /BiliApp/i.test(u);
let isWeiXin = /MicroMessenger/i.test(u) && u.toLowerCase().indexOf('wxwork') === -1;
let isQQ = u.match(/\sQQ/i) !== null;
let isAlipay = /Alipay/i.test(u) && u.toLowerCase().indexOf('alipay') > 0;
//判断是不是手机
let isMobile = true;
if (u && u.toLowerCase().indexOf('mobile') === -1) {
    isMobile = false;
} else if (u && u.toLowerCase().indexOf('ipad') > -1) {
    isMobile = false;
}

设置浏览器cookie

function setCookie(key, value, exp = null) {
    if (exp && exp instanceof Date) {
        document.cookie = key + "=" + escape(value) + ";expires=" + exp.toGMTString();
    } else {
        document.cookie = key + "=" + escape(value);
    }
}

获取浏览器cookie

function getCookie(key) {
    let search = key + "=",
        returnvalue = "";
    if (document.cookie.length > 0) {
        let start = document.cookie.indexOf(search);
        if (start != -1) {
            start += search.length;
            let end = document.cookie.indexOf(";", start);
            if (end == -1)
                end = document.cookie.length;
            returnvalue = unescape(document.cookie.substring(start, end))
        }
    }
    return returnvalue;
}

获取url参数

getQueryString(name) {
    var reg = new RegExp('(^|&|#|\\?)' + name + '=([^&]*)(@|&|$)', 'i');
    let r = location.hash.match(reg);
    return r == null ? null : decodeURIComponent(r[2]);
},

克隆一个对象、数组、或基本数据类型

let clone = (obj) => {
    var o;
    // 如果  他是对象object的话  , 因为null,object,array  也是'object';
    if (typeof obj === 'object') {
        // 如果  他是空的话
        if (obj === null) {
            o = null;
        } else {
            // 如果  他是数组arr的话
            if (obj instanceof Array) {
                o = [];
                for (var i = 0, len = obj.length; i < len; i++) {
                    o.push(clone(obj[i]));
                }
            }
            // 如果  他是对象object的话
            else {
                o = {};
                for (var j in obj) {
                    o[j] = clone(obj[j]);
                }
            }

        }
    } else {
        o = obj;
    }
    return o;
};

获取n天前的日期

getDateBefore(AddDayCount) {
    var dd = new Date();
    dd.setDate(dd.getDate() - AddDayCount); //获取AddDayCount天后的日期 
    var y = dd.getFullYear();
    var m = dd.getMonth() < 10 ? '0' + dd.getMonth() : dd.getMonth(); //获取当前月份的日期,不足10补0
    var d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate(); //获取当前几号,不足10补0
    return {
        year: y,
        month: m,
        day: d
    };
},

格式化Date格式时间(2019-06-26 00:00:00)

formatDate(date) {
    date.setMinutes(date.getMinutes() - date.getTimezoneOffset());
    return date.toJSON().slice(0, 10);
},
formatMonth(month) {
    month.setMinutes(month.getMinutes() - month.getTimezoneOffset());
    return month.toJSON().slice(0, 7);
},
formatDateWithSecond(time) {
    let date = new Date(time.toString());
    date.setMinutes(date.getMinutes() - date.getTimezoneOffset());
    return date.toJSON().slice(0, 10) + ' ' + date.toJSON().slice(11, 19);
},