function isString(str) { return (typeof str == 'string') && str.constructor == String; } function isArray(obj) { return (typeof obj == 'object') && obj.constructor == Array; } function sub_last(str){ return str.substring(0, str.length - 1) } function trim(str) { return str.replace(/(^s*)|(s*$)/g, "");} function e(e) { var r = ""; for (var t in e) r += (r ? "&" : "") + t + "=" + e[t]; return r; } function utf16to8(str) { var out, i, len, c; out = ""; len = str.length; for (i = 0; i < len; i++) { c = str.charCodeAt(i); if ((c >= 0x0001) && (c <= 0x007F)) { out += str.charAt(i); } else if (c > 0x07FF) { out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F)); out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F)); out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F)); } else { out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F)); out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F)); } } return out; } function utf8to16(str) { var out, i, len, c; var char2, char3; out = "";len = str.length; i = 0; while (i < len) { c = str.charCodeAt(i++); switch (c >> 4) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: // 0xxxxxxx out += str.charAt(i - 1); break; case 12: case 13: // 110x xxxx 10xx xxxx char2 = str.charCodeAt(i++); out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F)); break; case 14: // 1110 xxxx 10xx xxxx 10xx xxxx char2 = str.charCodeAt(i++); char3 = str.charCodeAt(i++); out += String.fromCharCode(((c & 0x0F) << 12) | ((char2 & 0x3F) << 6) | ((char3 & 0x3F) << 0)); break; } } return out; } function unserialize_o(ss) { var p = 0, ht = [], hv = 1,r = null; function unser_null() { p++; return null; } function unser_boolean() { p++; var b = (ss.charAt(p++) == '1'); p++; return b; } function unser_integer() { p++; var i = parseInt(ss.substring(p, p = ss.indexOf(';', p))); p++; return i;} function unser_double() { p++;var d = ss.substring(p, p = ss.indexOf(';', p)); switch (d) { case 'INF': d = Number.POSITIVE_INFINITY; break; case '-INF': d = Number.NEGATIVE_INFINITY; break; default: d = parseFloat(d); } p++; return d; } function unser_string() { p++;var l = parseInt(ss.substring(p, p = ss.indexOf(':', p))); p += 2; var s = utf8to16(ss.substring(p, p += l)); p += 2; return s; } function unser_array() { p++; var n = parseInt(ss.substring(p, p = ss.indexOf(':', p))); p += 2; var a = []; ht[hv++] = a; for (var i = 0; i < n; i++) { var k; switch (ss.charAt(p++)) { case 'i': k = unser_integer(); break; case 's': k = unser_string(); break; case 'U': k = unser_unicode_string(); break; default: return false; } a[k] = __unserialize(); } p++; return a; } function unser_object() { p++; var l = parseInt(ss.substring(p, p = ss.indexOf(':', p))); p += 2; var cn = utf8to16(ss.substring(p, p += l)); p += 2; var n = parseInt(ss.substring(p, p = ss.indexOf(':', p))); p += 2; if (eval(['typeof(', cn, ') == "undefined"'].join(''))) { eval(['function ', cn, '(){}'].join('')); } var o = eval(['new ', cn, '()'].join('')); ht[hv++] = o; for (var i = 0; i < n; i++) { var k; switch (ss.charAt(p++)) { case 's': k = unser_string(); break; case 'U': k = unser_unicode_string(); break; default: return false; } if (k.charAt(0) == '\0') { k = k.substring(k.indexOf('\0', 1) + 1, k.length); } o[k] = __unserialize(); } p++; if (typeof (o.__wakeup) == 'function') o.__wakeup(); return o; } function unser_custom_object() { p++; var l = parseInt(ss.substring(p, p = ss.indexOf(':', p))); p += 2; var cn = utf8to16(ss.substring(p, p += l)); p += 2; var n = parseInt(ss.substring(p, p = ss.indexOf(':', p))); p += 2; if (eval(['typeof(', cn, ') == "undefined"'].join(''))) { eval(['function ', cn, '(){}'].join('')); } var o = eval(['new ', cn, '()'].join('')); ht[hv++] = o; if (typeof (o.unserialize) != 'function') p += n; else o.unserialize(ss.substring(p, p += n)); p++; return o; } function unser_unicode_string() { p++; var l = parseInt(ss.substring(p, p = ss.indexOf(':', p))); p += 2; var sb = []; for (i = 0; i < l; i++) { if ((sb[i] = ss.charAt(p++)) == '\\') { sb[i] = String.fromCharCode(parseInt(ss.substring(p, p += 4), 16)); } } p += 2; return sb.join(''); } function unser_ref() { p++; var r = parseInt(ss.substring(p, p = ss.indexOf(';', p))); p++; return ht[r];} function __unserialize() { switch (ss.charAt(p++)) { case 'N': return ht[hv++] = unser_null(); case 'b': return ht[hv++] = unser_boolean(); case 'i': return ht[hv++] = unser_integer(); case 'd': return ht[hv++] = unser_double(); case 's': return ht[hv++] = unser_string(); case 'U': return ht[hv++] = unser_unicode_string(); case 'r': return ht[hv++] = unser_ref(); case 'a': return unser_array(); case 'O': return unser_object(); case 'C': return unser_custom_object(); case 'R': return unser_ref(); default: return false; } } return __unserialize(); } //---数组序列化的反转--- function unserialize(ss) { if (ss=="" || ss==undefined || ss==null) return ''; //ss ='a:2:{i:0;s:60:"/public/upload/comment/8704/2017/10-14/15079840099736199.png";i:1;s:60:"/public/upload/comment/8704/2017/10-14/15079840132718554.jpg";}'; ss=ss.substring(7); var arr = ss.split('i:'), rs=new Array(); for (var i = 0; i < arr.length;i++){ var ind0 = arr[i].indexOf('/public'); var ind1 = arr[i].indexOf('";'); var txt = arr[i].substring(ind0, ind1); rs.push(txt); } return rs; } //-----判断一个对象是不是空对象-------- function isEmptyObject(obj) { for (var key in obj) { return false }; return true }; function gettimestamp(){ var timestamp = Date.parse(new Date()); timestamp = timestamp / 1000; return timestamp; } function measureText(text, fontSize = 10) { text = String(text); var text = text.split(''); var width = 0; text.forEach(function (item) { if (/[a-zA-Z]/.test(item)) { width += 7; } else if (/[0-9]/.test(item)) { width += 5.5; } else if (/\./.test(item)) { width += 2.7; } else if (/-/.test(item)) { width += 3.25; } else if (/[\u4e00-\u9fa5]/.test(item)) { //中文匹配 width += 10; } else if (/\(|\)/.test(item)) { width += 3.73; } else if (/\s/.test(item)) { width += 2.5; } else if (/%/.test(item)) { width += 8; } else { width += 10; } }); return width * fontSize / 10; } //验证手机号 function check_mobile(phoneMobile){ var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1}))+\d{8})$/; var ob={code:1}; if (phoneMobile.length === 0) { ob.title='输入的手机号为空'; ob.code=-1; } else if (phoneMobile.length < 11) { ob.title ='手机号长度有误!'; ob.code = -1; } else if (!myreg.test(phoneMobile)) { ob.title = '手机号格式有误!'; ob.code = -1; } return ob; } //获取随机元素 function get_rand_item(arr){ if(!arr) return null; if(arr.length<=0) return null; if(arr.length==1) return arr[0]; var ind=Math.floor(Math.random()*arr.length); if(ind==arr.length) ind=arr.length-1; return arr[ind]; } function getDistance(lat1, lng1, lat2, lng2){ var radLat1 = lat1*Math.PI / 180.0; var radLat2 = lat2*Math.PI / 180.0; var a = radLat1 - radLat2; var b = lng1*Math.PI / 180.0 - lng2*Math.PI / 180.0; var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) + Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2))); s = s *6378.137 ;// EARTH_RADIUS; return s; } //画布画椭圆矩形 function draw_randon_rect(ctx,x,y,r,w,h){ ctx.save(); // 开始绘制 ctx.beginPath(); // 因为边缘描边存在锯齿,最好指定使用 transparent 填充 // 这里是使用 fill 还是 stroke都可以,二选一即可 ctx.setFillStyle('rgb(237,188,150)') // ctx.setStrokeStyle('transparent') // 左上角 ctx.arc(x + r, y + r, r, Math.PI, Math.PI * 1.5) // border-top ctx.moveTo(x + r, y) ctx.lineTo(x + w - r, y) ctx.lineTo(x + w, y + r) // 右上角 ctx.arc(x + w - r, y + r, r, Math.PI * 1.5, Math.PI * 2) // border-right ctx.lineTo(x + w, y + h - r) ctx.lineTo(x + w - r, y + h) // 右下角 ctx.arc(x + w - r, y + h - r, r, 0, Math.PI * 0.5) // border-bottom ctx.lineTo(x + r, y + h) ctx.lineTo(x, y + h - r) // 左下角 ctx.arc(x + r, y + h - r, r, Math.PI * 0.5, Math.PI) // border-left ctx.lineTo(x, y + r) ctx.lineTo(x + r, y) // 这里是使用 fill 还是 stroke都可以,二选一即可,但是需要与上面对应 ctx.fill(); } function null_promise(){ var promise=new Promise(function(resolve, reject){ var ob={code:-1,data:null}; resolve(ob); }); return promise; } module.exports = { formatTime: function(e, r) { var t = e ? new Date(1e3 * e) : new Date(), n = t.getFullYear(), o = t.getMonth() + 1, a = t.getDate(), u = t.getHours(), i = t.getMinutes(), f = t.getSeconds(), s = function(e) { return (e = e.toString())[1] ? e : "0" + e; }; return void 0 !== r && 0 == r ? [ n, o, a ].map(s).join("-") + " " + [ u, i ].map(s).join(":") : [ n, o, a ].map(s).join("-") + " " + [ u, i, f ].map(s).join(":"); }, format: function(e, r) { var t = new Date(); t.setTime(1e3 * e); var n = { "M+": t.getMonth() + 1, "d+": t.getDate(), "h+": t.getHours(), "m+": t.getMinutes(), "s+": t.getSeconds(), "q+": Math.floor((t.getMonth() + 3) / 3), S: t.getMilliseconds() }; void 0 === r && (r = "yyyy-MM-dd hh:mm:ss"), /(y+)/.test(r) && (r = r.replace(RegExp.$1, (t.getFullYear() + "").substr(4 - RegExp.$1.length))); for (var o in n) new RegExp("(" + o + ")").test(r) && (r = r.replace(RegExp.$1, 1 == RegExp.$1.length ? n[o] : ("00" + n[o]).substr(("" + n[o]).length))); return r; }, json2Form: function(e) { var r = []; for (var t in e) r.push(encodeURIComponent(t) + "=" + encodeURIComponent(e[t])); return r.join("&"); }, randomString: function(e) { e = e || 32; for (var r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", t = r.length, n = "", o = 0; o < e; o++) n += r.charAt(Math.floor(Math.random() * (t + 1))); return n; }, inArray: function(e, r) { for (var t = 0; t < r.length; t++) if (e == r[t]) return !0; return !1; }, sortSize: function(e, r) { return void 0 === r && (r = 0), r ? e.sort(function(e, r) { return r - e; }) : e.sort(function(e, r) { return e - r; }), e; }, convertRequestArray: function(e, r) { for (var t = {}, n = 0; n < r.length; n++) t[e + "[" + n + "]"] = r[n]; return t; }, remainTime: function(e) { var r = "", t = !1, n = Math.floor(e / 864e5); r = n ? n + "天" : "", t = !!n, e -= 864e5 * n; var o = Math.floor(e / 36e5); r += o ? o + "时" : t ? "0时" : "", t = !!o, e -= 36e5 * o; var a = Math.floor(e / 6e4); r += a ? a + "分" : t ? "0分" : "", e -= 6e4 * a; var u = Math.floor(e / 1e3); return r += u ? u + "秒" : "0秒"; }, transTime: function(e) { var r = { hour: 0, minute: 0, second: 0 }, t = Math.floor(e / 36e5); r.hour = t || "0", e -= 36e5 * t; var n = Math.floor(e / 6e4); r.minute = n || "0", e -= 6e4 * n; var o = Math.floor(e / 1e3); return r.second = o || "0", r; }, Obj2Str: e, JumpTo: function(r, t, n) { var o = e(t); n ? wx.redirectTo({ url: r + o }) : wx.navigateTo({ url: r + o }); }, unserialize: unserialize, unserialize_o: unserialize_o, trim: trim, //去空格 isEmptyObject: isEmptyObject, //判断空对象 gettimestamp: gettimestamp, //获取时间戳 isString: isString, isArray: isArray, sub_last: sub_last,//去掉末尾一个字符 measureText: measureText,//画布需要的函数 check_mobile: check_mobile,//验证手机 get_rand_item:get_rand_item, //随机获取元素 getDistance:getDistance, //获取俩个经纬网度之间的距离 draw_randon_rect:draw_randon_rect ,//画图画圆角矩形 null_promise:null_promise,//返回空的promise };