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}¶m=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)