通用工具类

1. 图片压缩

 /**
 * 获取压缩图片
 * @param {*} imgUrl 图片地址
 * @param {*} size // 压缩大小 默认800
 * @returns // 图片url
 */
    getCompressPictures(imgUrl, size = 800) {
        if (imgUrl && (imgUrl.includes(`https://res.${domain}/`) || imgUrl.includes(`https://t2.${domain}/`))) {
            if (imgUrl.includes('thumbnailImage')) {
                // 把链接里带的图片压缩去掉 然后再在后面拼图片压缩
                let reg = /[?&][^?&]+=[^?&]+/g
                let arr = imgUrl.match(reg)
                let arrNew = arr.filter(item => item.indexOf('thumbnailImage') == -1)
                let newUrl = arrNew.join('&')
                return `${imgUrl.split('?')[0]}?param=thumbnailImage/width/${size}/height/${size}&${newUrl}`
            } else if (imgUrl.includes('?')) {
                return `${imgUrl}&param=thumbnailImage/width/${size}/height/${size}`
            } else {
                return `${imgUrl}?param=thumbnailImage/width/${size}/height/${size}`
            }
        } else {
            return imgUrl
        }
    },

使用

getCompressPictures('http://XXX.png', 800)

2. 终端类型判断

/**
     * 判断终端类型
     * @returns ios\android\miniProgram\weChat\ali
     */
    getPlat() {
        return new Promise(function (resolve) {
            if (this.isIosBrowser()) {
                resolve('ios');
            } else if (this.isAndroidBrowser()) {
                resolve('android')
            } else {
                var ua = window.navigator.userAgent.toLowerCase();
                if (ua.match(/MicroMessenger/i) == 'micromessenger') { //微信浏览器
                    wx.miniProgram.getEnv((res) => {
                        if (res.miniprogram) {
                            resolve('miniProgram')
                        } else {//在微信中
                            resolve('weChat')
                        }
                    });
                } else {
                    if (navigator.userAgent.indexOf('AlipayClient') > -1) {
                        resolve('ali')// 支付宝环境
                    } else {
                        return 'undefined';
                    }

                }
            }
        })
    },

使用

getPlat.then(res=>{
    console.log(res)
    // ios-ios终端 android-android终端 miniProgram-微信小程序终端 weChat-微信公众号终端 ali-支付宝终端})
}

3. 常用emoji字符替换为空字符

/**
   * 将 emoji 替换为空字符
   * @param str emoji
   * @returns {string}
   */
    replaceEmoji2Space: function (str) {
        let res = ''
        if (str) {
            // eslint-disable-next-line no-misleading-character-class
            const emojiReg = /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi  // eslint-disable-line
            res = str.replace(emojiReg, '')
        }
        return res
    },

使用

replaceEmoji2Space('hahaah😊') // hahaah

4.从URL中获取查询参数

/** 
*@param URL url地址
*/
const getParameters = (URL) => {
 URL = JSON.parse('{"' + decodeURI(URL.split("?")[1]).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g, '":"') +'"}');
  return JSON.stringify(URL); 
  };

使用

getParameters(window.location)
// Result: { search : "easy", page : 3 }

5. 超过万数字以千为单位处理(1w+,1.1w+,10w+)

export function setNumberW(num){
  if(!num || num < 10000){
    return num
  }
  if(num >= 10000){
    let num1 = Math.floor(num/1000)
    if(Number.isInteger(num1/10)){
      let r = num1/10
      return r + 'w+'
    }else{
      let r = (num1/10).toFixed(1)
      return r + 'w+'
    }
  }
}

使用

import {setNumberW} from ***
setNumberW(10300)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容