const formatTime = date => { const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() const hour = date.getHours() const minute = date.getMinutes() const second = date.getSeconds() return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':') } const formatNumber = n => { n = n.toString() return n[1] ? n : '0' + n } const getTypeSn = url => { let type_sn = '' if (url.indexOf('type_sn') != -1 && url.indexOf('bonusex') != -1) { let arr = url.split('&') arr.some(item => { if (item.indexOf('type_sn') != -1) { type_sn = item.split('=')[1] return true } }) } return type_sn } function getUrlPrefixAndParams(url) { // 用JS拿到URL,如果函数接收了URL,那就用函数的参数。如果没传参,就使用当前页面的URL let params = url.split('?'); let prefix = params[0]; if(params.length < 2) { return [prefix, {}]; } var queryString = params[1]; // 用来存储我们所有的参数 var obj = {}; // 如果没有传参,返回一个空对象 if (!queryString) { return obj; } // stuff after # is not part of query string, so get rid of it queryString = queryString.split('#')[0]; // 将参数分成数组 var arr = queryString.split('&'); for (var i = 0; i < arr.length; i++) { // 分离成key:value的形式 var a = arr[i].split('='); // 将undefined标记为true var paramName = a[0]; var paramValue = typeof (a[1]) === 'undefined' ? true : a[1]; // 如果调用对象时要求大小写区分,可删除这两行代码 paramName = paramName.toLowerCase(); if (typeof paramValue === 'string') paramValue = paramValue.toLowerCase(); // 如果paramName以方括号结束, e.g. colors[] or colors[2] if (paramName.match(/\[(\d+)?\]$/)) { // 如果paramName不存在,则创建key var key = paramName.replace(/\[(\d+)?\]/, ''); if (!obj[key]) obj[key] = []; // 如果是索引数组 e.g. colors[2] if (paramName.match(/\[\d+\]$/)) { // 获取索引值并在对应的位置添加值 var index = /\[(\d+)\]/.exec(paramName)[1]; obj[key][index] = paramValue; } else { // 如果是其它的类型,也放到数组中 obj[key].push(paramValue); } } else { // 处理字符串类型 if (!obj[paramName]) { // 如果如果paramName不存在,则创建对象的属性 obj[paramName] = paramValue; } else if (obj[paramName] && typeof obj[paramName] === 'string') { // 如果属性存在,并且是个字符串,那么就转换为数组 obj[paramName] = [obj[paramName]]; obj[paramName].push(paramValue); } else { // 如果是其它的类型,还是往数组里丢 obj[paramName].push(paramValue); } } } return [prefix,obj]; } module.exports = { getTypeSn: getTypeSn, formatTime: formatTime, parseAppjump: getUrlPrefixAndParams }