export const stringify = (json) => { const urlEncode = (param, key, encode) => { if (param === null) return ''; let paramStr = ''; const t = typeof (param); if (t === 'string' || t === 'number' || t === 'boolean') { paramStr = `&${key}=${((encode === null || encode) ? encodeURIComponent(param) : param)}`; } else { for (const i in param) { if (i) { if (param[i] !== undefined && param[i] !== '' && !(param[i] && typeof param[i] === 'string' && /^\s+$/.test(param[i]))) { const k = key == null ? i : `${key}${(param instanceof Array ? `[${i}]` : `.${i}`)}`; paramStr += urlEncode(param[i], k, encode); } } } } return paramStr; }; return urlEncode(json).substring(1); } export const parse = (url) => { let obj = {};// 创建一个Object let reg = /[?&][^?&]+=[^?&]+/g;// 正则匹配 ?&开始 =拼接 非?&结束 的参数 let arr = url.match(reg);// match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 // arr数组形式 ['?id=12345','&a=b'] if (arr) { arr.forEach((item) => { /** * tempArr数组 ['id','12345']和['a','b'] * 第一个是key,第二个是value * */ let tempArr = item.substring(1).split('='); let key = decodeURIComponent(tempArr[0]); let val = decodeURIComponent(tempArr[1]); obj[key] = val; }); } return obj; } export const getUUID = (len, radix) => { var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split(''); var uuid = [], i; radix = radix || chars.length; if (len) { // Compact form for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random()*radix]; } else { // rfc4122, version 4 form var r; // rfc4122 requires these characters uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'; uuid[14] = '4'; // Fill in random data. At i==19 set the high bits of clock sequence as // per rfc4122, sec. 4.1.5 for (i = 0; i < 36; i++) { if (!uuid[i]) { r = 0 | Math.random()*16; uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]; } } } return uuid.join(''); }