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}¶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')// 支付宝环境
} 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)