通用工具類

1. 圖片壓縮

 /**
 * 獲取壓縮圖片
 * @param {*} imgUrl 圖片地址
 * @param {*} size // 壓縮大小 默認(rèn)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')// 支付寶環(huán)境
                    } else {
                        return 'undefined';
                    }

                }
            }
        })
    },

使用

getPlat.then(res=>{
    console.log(res)
    // ios-ios終端 android-android終端 miniProgram-微信小程序終端 weChat-微信公眾號(hào)終端 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中獲取查詢參數(shù)

/** 
*@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. 超過萬數(shù)字以千為單位處理(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)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容