export function getUrlKey(url = "", name) {
let val = decodeURIComponent(
(new RegExp("[?|&]" + name + "=" + "([^&;]+?)(&|#|;|$)").exec(url) || [
,
"",
])[1].replace(/\+/g, "%20")
);
if (val == "null" || val == "undefined") {
val = null;
}
return val || null;
}
export function getUrlParams(url) {
let urlStr = url.split("?")[1] || "";
let obj = {};
let paramsArr = urlStr.split("&");
for (let i = 0, len = paramsArr.length; i < len; i++) {
let arr = paramsArr[i].split("=");
obj[arr[0]] = arr[1];
}
return obj;
}
export function replaceParams(url, key, value) {
const startIndex = url.indexOf(key) + 1 + key.length;
const endIndex = url.indexOf("&", startIndex);
let str = "";
if (url.indexOf(key) == -1) {
if (url.indexOf("?") == -1) {
str = url + `?${key}=${value}`;
} else {
str = url + `&${key}=${value}`;
}
} else if (endIndex == -1) {
str = url.substring(0, startIndex) + value;
} else {
str = url.substring(0, startIndex) + value + url.substring(endIndex);
}
return str || "";
}
const throttle = (fn, wait) => {
var timer = null
return function() {
var context = this
var args = arguments
if (!timer) {
timer = setTimeout(function() {
fn.apply(context, args)
timer = null
}, wait)
}
}
}
const debounce = (fn, t) => {
const delay = t || 300
let timer
return function() {
const args = arguments
if (timer) {
clearTimeout(timer)
}
const callNow = !timer
timer = setTimeout(() => {
timer = null
}, delay)
if (callNow) fn.apply(this, args)
}
}
export function handelBySurroundings(handelMiniApp, handelH5) {
const ua = navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == "micromessenger") {
wx.miniProgram.getEnv((res) => {
if (res.miniprogram) {
handelMiniApp();
} else {
handelH5();
}
});
} else if (navigator.userAgent.indexOf("AliApp") > -1) {
handelMiniApp();
} else {
handelH5();
}
}