项目中经常用到的工具函数,怕自己忘记

571 阅读1分钟
// 时间戳转化日期
export function getExactTime (time) {
    time = time * 1000;
    var date = new Date(time);
    var y = date.getFullYear();
    var m = date.getMonth() + 1;
    m = m < 10 ? ('0' + m) : m;
    var d = date.getDate();
    d = d < 10 ? ('0' + d) : d;
    var h = date.getHours();
    h = h < 10 ? ('0' + h) : h;
    var minute = date.getMinutes();
    var second = date.getSeconds();
    minute = minute < 10 ? ('0' + minute) : minute;
    second = second < 10 ? ('0' + second) : second;
    return y + '-' + m + '-' + d + ' ' + ' ' + h + ':' + minute + ':' + second;
}

// 获取指定名称的cookie的值
export function getCookie(objname) {
    const arrstr = document.cookie.split(';');
    for (let i = 0; i < arrstr.length; i++) {
      const str = arrstr[i].split('=');
      if (str[0].trim() === objname) {
        return str[1];
      }
    }
}

// 写入cookie
export function setCookie(key, value) {
    let expire = new Date((new Date()).getTime() + 24 * 60 * 60000); // 有效期24小时
    expire = `;expires=${expire.toGMTString()}`;
    document.cookie = `${key}=${value};path=/;domain=.qq.com${expire}`;
}

// 解析出query参数字段
function parseQueryKey(url) {
    let urlParsed = new URL(url);
    let result = [...urlParsed.searchParams].reduce((cur, [key, value]) => (cur[key] = value, cur), {});
    return result;
}

// 环境验证
function getUserAgent() {
    return (typeof navigator !== 'undefined' && navigator && navigator.userAgent) || '';
}
const ua = getUserAgent();
const isQQ = /\bQQ\/([\d.]+)/.test(ua);
const isIOS = /\b(iPad|iPhone|iPod)\b.*? OS ([\d_]+)/.test(ua);
const isAndroid = /\bAndroid\s*([^;]+)/.test(ua);
const isWeiXin = navigator.userAgent.toLowerCase().search(/MicroMessenger/i) !== -1;// 当前是否在QQ浏览器中运行
const qb = navigator.userAgent.toLowerCase();
const isQQBrowser = !!qb.match(/mqqbrowser|qqbrowser|nowsdk/i);

// 字符串是否以 / 结尾
function strEnding(str: any) {
   return /\/$/.test(str);
}

/**
   * 查询 URL 中的参数值
   * 例如 url 为 /index.html?roomid=123,则可通过 query('roomid') 获得结果值为 123。   
   * @param {String} name 要查询的参数名称
   */
function query(name: string) {
    return location.search.match(new RegExp(`(\\?|&)${name}=([^&]*)(&|$)`)) ? decodeURIComponent(RegExp.$2) : '';  
}