export default { //根据年份和月份获取当月天数 getDaysByYearAndMonth(year, month) { switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ? 29 : 28; default: return 0; } }, // 删除url中的参数 funcUrlDel: function(name){ var loca = window.location var baseUrl = loca.origin + loca.pathname + "?" var query = loca.search.substr(1) if(query.indexOf(name)>-1){ var obj = {} var arr = query.split("&") for(var i = 0;i= 0) { return false } }, //unix时间戳转换成普通时间 MyDate: function(time, type = 0) { if (time <= 0) { var d = new Date(); } else { var d = new Date(time * 1000); } var Y = d.getFullYear(); var M = d.getMonth() + 1; var D = d.getDate(); var H = d.getHours(); var Mi = d.getMinutes(); var S = d.getSeconds(); if (M < 10) { M = '0' + M; }; if (D < 10) { D = '0' + D; }; if (H < 10) { H = '0' + H; }; if (Mi < 10) { Mi = '0' + Mi; }; if (S < 10) { S = '0' + S; }; if (type == 0) { return Y + '-' + M + '-' + D + ' ' + H + ':' + Mi + ':' + S; } else if (type == 1) { return Y + '.' + M + '.' + D; } else if (type == 2) { return H + ':' + Mi + ':' + S; } else if (type == 3) { return H + ':' + Mi } else if (type == 4) { return M + '/' + D } else if (type == 5) { return Y + '-' + M + '-' + D; } }, GetWeek() { var d = new Date() var ww = d.getDay(); if (ww == 0) ww = "星期日"; if (ww == 1) ww = "星期一"; if (ww == 2) ww = "星期二"; if (ww == 3) ww = "星期三"; if (ww == 4) ww = "星期四"; if (ww == 5) ww = "星期五"; if (ww == 6) ww = "星期六"; return ww; }, //获得随机数 GetRandom: function(max) { return Math.floor(Math.random() * max); }, /** * 随机生成字符串 * len 指定生成字符串长度 */ getRandomString(len) { let _charStr = 'abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789', min = 0, max = _charStr.length - 1, _str = ''; //定义随机字符串 变量 //判断是否指定长度,否则默认长度为15 len = len || 15; //循环生成字符串 for (var i = 0, index; i < len; i++) { index = (function(randomIndexFunc, i) { return randomIndexFunc(min, max, i, randomIndexFunc); })(function(min, max, i, _self) { let indexTemp = Math.floor(Math.random() * (max - min + 1) + min), numStart = _charStr.length - 10; if (i == 0 && indexTemp >= numStart) { indexTemp = _self(min, max, i, _self); } return indexTemp; }, i); _str += _charStr[index]; } return _str; }, //判断手机号 IsMobile: function(mobile) { let preg = "^(0|86|17951)?(16[0-9]|17[0-9]|13[0-9]|15[012356789]|18[0-9]|19[0-9]|14[57])[0-9]{8}$"; let valid = new RegExp(preg, "gim").test(mobile); return valid; }, //判断联系方式是否是手机号码或座机号码 CheckContact: function(number) { let valid = false let tel = /^0\d{2,3}-?\d{7,8}$/; let phone = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/; if (number.length == 11) { //手机号码 if (phone.test(number)) { valid = true } } else if (number.indexOf("-") != -1) { //电话号码 if (tel.test(number)) { valid = true } } else if (number.indexOf("-") == -1 && number.length == 7) { valid = true } return valid }, //判断座机号 IsLandline: function(number) { let preg = "/^0\d{2,3}-?\d{7,8}$/" let valid = new RegExp(preg).test(number) return valid }, //验证身份证号码 IsIDcard: function(num) { num = num.toUpperCase(); var len, re; len = num.length; if (len == 0) return true; //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。 if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) { return false; } //验证前两位地区是否有效 var aCity = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外" } if (aCity[parseInt(num.substr(0, 2))] == null) { return false; } //当身份证为15位时的验证出生日期。 if (len == 15) { re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/); var arrSplit = num.match(re); //检查生日日期是否正确 var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]); var bGoodDay; bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[ 3])) && ( dtmBirth.getDate() == Number(arrSplit[4])); if (!bGoodDay) { return false; } } //当身份证号为18位时,校验出生日期和校验位。 if (len == 18) { re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/); var arrSplit = num.match(re); //检查生日日期是否正确 var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]); var bGoodDay; bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number( arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); if (!bGoodDay) { return false; } else { //检验18位身份证的校验码是否正确。 //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。 var valnum; var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); var nTemp = 0, i; for (i = 0; i < 17; i++) { nTemp += num.substr(i, 1) * arrInt[i]; } valnum = arrCh[nTemp % 11]; if (valnum != num.substr(17, 1)) { return false; } } } return true; }, //浮点数判断,货币判断len1小数点前位数len2小数点后位数 IsFloat: function(float, len1, len2) { var preg = "^([0-9]{1," + len1 + "}\.{0,1}[0-9]{0," + len2 + "})$"; var valid = new RegExp(preg, "gim").test(float); return valid; }, //邮箱判断 IsEmail: function(email) { var preg = "^\\w+((-\\w+)|(\.\\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$"; var valid = new RegExp(preg, "gim").test(email); return valid; }, //判断正常名称类的字符串 IsStrName: function(str, len1, len2) { var preg = "^(\\w|[\\u4E00-\\u9FA5\\uF900-\\uFA2D]|[\\uFF00-\\uFFEF]){" + len1 + "," + len2 + "}$"; var valid = new RegExp(preg, "gim").test(str); return valid; }, //判断中文字符串 IsStrZH: function(str, len1, len2) { var preg = "^([\\u4E00-\\u9FA5\\uF900-\\uFA2D]|[\\uFF00-\\uFFEF]){" + len1 + "," + len2 + "}$"; var valid = new RegExp(preg, "gim").test(str); return valid; }, //判断英文字符串 IsStrEN: function(str, len1, len2) { var preg = "^([A-Za-z0-9]){" + len1 + "," + len2 + "}$"; var valid = new RegExp(preg, "gim").test(str); return valid; }, //判断整型数字 IsNumeric: function(num, min, max) { var preg = "^(\\d){" + min + "," + max + "}$"; var valid = new RegExp(preg, "gim").test(num); return valid; }, //去左右空格; Trim: function(s) { return s.replace(/(^\s*)|(\s*$)/g, ""); }, //提取字符串中的img标签 生成自适应图片的字符串 getImgSrcfromString: function(str) { let new_str = str let img_reg = /|\/>)/gi let src_reg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i let imgs = str.match(img_reg) if (imgs != null) { for (let i = 0; i < imgs.length; i++) { let src = imgs[i].match(src_reg)[1] new_str = new_str.replace(imgs[i], ``) } } return new_str }, //获得今天的日期 GetNowTime: function() { var now = new Date(); var year = now.getFullYear(); var month = now.getMonth() + 1; var day = now.getDate(); if (month < 10) { month = '0' + month; }; if (day < 10) { day = '0' + day; }; // 如果需要时分秒,就放开 // var h = now.getHours(); // var m = now.getMinutes(); // var s = now.getSeconds(); var formatDate = year + '-' + month + '-' + day; return formatDate; }, //获得当前月份 GetNowMonth: function() { var now = new Date(); var year = now.getFullYear(); var month = now.getMonth() + 1; if (month < 10) { month = '0' + month; }; var formatDate = year + '-' + month; return formatDate; }, //获得当前时间加指定秒数 GetTimeAdd: function(second) { // 如果需要时分秒,就放开 var now = new Date(); var time = now.getTime() + 1000 * second; var n2 = new Date(time); return n2.getHours() + ':' + n2.getMinutes(); }, //获得多少天以后的日期 GetDateStr: function(addDayCount) { var dd; dd = new Date(); dd.setDate(dd.getDate() + addDayCount); //获取AddDayCount天后的日期 var y = dd.getFullYear(); var m = dd.getMonth() + 1; //获取当前月份的日期 var d = dd.getDate(); if (m < 10) { m = '0' + m; }; if (d < 10) { d = '0' + d; }; return y + "-" + m + "-" + d; }, //数组中重复元素删除 RepeatArrayClear: function(array) { var arr = []; for (var i = 0; i < array.length; i++) { if (arr.indexOf(array[i]) == -1) { arr.push(array[i]); } } return arr; }, //提示信息框 Toast: function(title, duration = 2000) { uni.showToast({ icon: 'none', title: title, duration: duration }); }, //显示模态框 Modal(title, content, type) { var promise = new Promise(function(resolve, reject) { if (type == 1) { uni.showModal({ showCancel: false, title: title, content: content, success: function(e) { if (e.confirm) { resolve(true); } else { resolve(false); } } }); } else { uni.showModal({ title: title, content: content, success: function(e) { if (e.confirm) { resolve(true); } else { resolve(false); } } }); } }); return promise; }, /**获取url地址中的指定参数值*/ getUrlParams(name) { return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ''])[1].replace(/\+/g, '%20')) || null }, // 打电话 call(num) { uni.makePhoneCall({ phoneNumber: num }); }, // 导航 toMap(info,name='') { // uni.getLocation({ // type: 'wgs84', //返回可以用于uni.openLocation的经纬度 // // 用户允许获取定位 // success: function(res) { // console.log('getLocation', res) // if (res.errMsg == "getLocation:ok") { uni.openLocation({ // 传入你要去的纬度 latitude: Number(info['lat']), // 传入你要去的经度 longitude: Number(info['lng']), // 要去位置的名称 name:name, // 缩放大小 scale: 18, success: function() { console.log('成功的回调success'); } }); // } // }, // // 用户拒绝获取定位后 再次点击触发 // fail: function(res) { // console.log(res) // if (res.errMsg == "getLocation:fail auth deny") { // uni.showModal({ // content: '检测到您没打开获取信息功能权限,是否去设置打开?', // confirmText: "确认", // cancelText: '取消', // success: (res) => { // if (res.confirm) { // uni.openSetting({ // success: (res) => { // console.log('确定'); // } // }) // } else { // return false; // } // } // }) // } // } // }); }, // 设置自定义导航栏 页面滚动调整导航的透明度 // e 滚动事件对象, headerStatus 是否显示自定义导航栏背景色 initOnPageScroll(e, _this, headerStatus = true) { if (e.scrollTop > 100) { _this.backButtonStyle = 'color:#323232;'; _this.headerStyle = headerStatus ? 'background-color:rgba(255,255,255,0.9)' : 'background-color:rgba(255,255,255,0)'; _this.titleStyle = 'opacity:1'; // 设置页面导航栏颜色 uni.setNavigationBarColor({ frontColor: '#000000', backgroundColor: 'rgba(255,255,255,0)' }) } else { _this.backButtonStyle = 'color:#FFFFFF;', _this.headerStyle = 'background-color:rgba(255,255,255,0)'; _this.titleStyle = 'opacity:0'; // 设置页面导航栏颜色 uni.setNavigationBarColor({ frontColor: '#ffffff', backgroundColor: 'rgba(255,255,255,0)' }) } }, // 加载自定义字体文件 getFontFamily() { uni.loadFontFace({ family: 'ysbth', source: 'url("/static/font/ysbth.ttf")', success() { console.log('字体加载成功') }, fail(err) { console.log('字体加载失败',err) } }) }, }