_ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ .' \\| |// `. / \\||| : |||// \ / _||||| -:- |||||- \ | | \\\ - /// | | | \_| ''\---/'' | | \ .-\__ `-` ___/-. / ___`. .' /--.--\ `. . __ ."" '< `.___\_<|>_/___.' >'"". | | : `- \`.;`\ _ /`;.`/ - ` : | | \ \ `-. \_ __\ /__ _/ .-` / / ======`-.____`-.___\_____/___.-`____.-'====== `=---=' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /*****************************封装一些经常使用的方法,有一些方法可能不够完善,后续有待优化!!*****************************/ var Common = (function(NS, $) { NS['cookie'] = { /** * 设置cookie * @param name cookie名称 * @param value cookie值 * @param iDay cookie的时间 */ setCookie: function(name, value, iDay) { var oDate = new Date(); oDate.setDate(oDate.getDate() + iDay); document.cookie = name + '=' + value + ';expires=' + oDate; }, /** * 获取cookie * @param name cookie名称 * @returns */ getCookie: function(name) { var arr = document.cookie.split('; '); for (var i = 0; i < arr.length; i++) { var arr2 = arr[i].split('='); if (arr2[0] == name) { return arr2[1]; } } return ''; }, /** * 删除cookie * @param name cookie名称 */ removeCookie: function(name) { setCookie(name, 1, -1); } }; /** * 其余方法 */ NS['other'] = { /** * 检测密码强度 * @param str 字符串 * @returns 1:密码弱 2:密码中等 3:密码强 4:密码很强 */ checkPwd: function(str) { var nowLv = 0; if (str.length < 6) { return nowLv }; if (/[0-9]/.test(str)) { nowLv++ }; if (/[a-z]/.test(str)) { nowLv++ }; if (/[A-Z]/.test(str)) { nowLv++ }; if (/[\.|-|_]/.test(str)) { nowLv++ }; return nowLv; }, /** * 获取URL参数 * @param url 地址 * @returns 例:getUrlPrmt("http://www.baidu.com?id=1&nam=张三&uid=12345654321&type=1,2,3"),结果{id: "1", nam: "张三", uid: "12345654321", type: "1,2,3"} */ getUrlPrmt: function(url) { url = url ? url : window.location.href; let _pa = url.substring(url.indexOf('?') + 1), _arrS = _pa.split('&'), _rs = {}; for (var i = 0, _len = _arrS.length; i < _len; i++) { let pos = _arrS[i].indexOf('='); if (pos == -1) { continue; } let name = _arrS[i].substring(0, pos), value = window.decodeURIComponent(_arrS[i].substring(pos + 1)); _rs[name] = value; } return _rs; }, /** * 返回指定某个区间的一个数字(能够不传参,不传就返回0-255之间的数;能够只传一个,返回0到传入的这个数字之间的某个值) * @param n1 开始区间 例:5 * @param n2 结束区间 例:10 * @returns 返回这个区间的某个随机值 */ randomNumber: function(n1, n2) { if (arguments.length === 2) { return Math.round(n1 + Math.random() * (n2 - n1)); } else if (arguments.length === 1) { return Math.round(Math.random() * n1) } else { return Math.round(Math.random() * 255) } }, /** * 随机产生某个颜色 * @returns {String} 颜色 例:rgb(250,82,49) */ randomColor: function() { //randomNumber是上面定义的函数 //写法1 return 'rgb(' + randomNumber(255) + ',' + randomNumber(255) + ',' + randomNumber(255) + ')'; //写法2 return '#' + Math.random().toString(16).substring(2).substr(0, 6); //写法3 var color = '#'; for (var i = 0; i < 6; i++) { color += '0123456789abcdef' [randomNumber(15)]; } return color; } }; /** * 数组相关方法 */ NS['arr'] = { /** * 数组去重 * 用的是Array的from方法 * @param arr 数组 * @returns 去重后的数组 */ removeRepeatArray: function(arr) { return Array.from(new Set(arr)) }, /** * 将数组乱序输出 * @param arr 数组 * @returns 打乱后的数组 */ upsetArr: function(arr) { return arr.sort(function() { return Math.random() - 0.5 }); }, /** * 获取数组的最大值,最小值,只针对数字类型的数组 * @param arr 数组 * @param type 0:最小值,1:最大值 * @returns */ compareArr: function(arr, type) { if (type == 1) { return Math.max.apply(null, arr); } else { return Math.min.apply(null, arr); } }, /** * 获得数组的和,只针对数字类型数组 * @param arr 数组 * @returns {Number} 和 */ sumArr: function(arr) { var sumText = 0; for (var i = 0, len = arr.length; i < len; i++) { sumText += arr[i]; } return sumText }, /** * 数组的平均值,只针对数字类型数组,小数点可能会有不少位,这里不作处理,处理了使用就不灵活了! * @param arr 数组 * @returns {Number} 平均值 */ covArr: function(arr) { var sumText = sumArr(arr); var covText = sumText / arr.length; return covText; }, /** * 随机获取数组中的某个元素 * @param arr 数组 * @returns 随机获取的值 */ randomOne: function(arr) { return arr[Math.floor(Math.random() * arr.length)]; }, /** * 返回某个元素在数组中出现的次数 * @param arr 数组 * @param ele 要查找的元素 * @returns {Number} 出现的次数 */ getEleCount: function(arr, ele) { var num = 0; for (var i = 0, len = arr.length; i < len; i++) { if (ele == arr[i]) { num++; } } return num; }, /** * 简单数组排序,针对数字数组 * @param type 1:降序,0:升序 */ sortArr: function(arr, type) { if (type == 1) { //降序 arr.sort(function(a, b) { return b - a; }); } else { arr.sort(function(a, b) { return a - b; }); } return arr; }, sortObjectArr: function(arr, type) { if (type == 1) { arr.sort(function(a, b) { if (a.age > b.age) return 1; if (a.age < b.age) return -1; if (a.age = b.age) return 0; }); } else { arr.sort(function(a, b) { if (a.age > b.age) return -1; if (a.age < b.age) return 1; if (a.age = b.age) return 0; }); } return arr; } }; NS['time'] = { /** * 倒计时(默认开始时间为当前时间) * @param endTime 结束时间 * @returns 例:剩余时间1天 16小时 45 分钟41 秒 */ getEndTime: function(endTime) { var startDate = new Date(); //开始时间,当前时间 var endDate = new Date(endTime); //结束时间,需传入时间参数 var t = endDate.getTime() - startDate.getTime(); //时间差的毫秒数 var d = 0, h = 0, m = 0, s = 0; if (t >= 0) { d = Math.floor(t / 1000 / 3600 / 24); h = Math.floor(t / 1000 / 60 / 60 % 24); m = Math.floor(t / 1000 / 60 % 60); s = Math.floor(t / 1000 % 60); } return "剩余时间" + d + "天 " + h + "小时 " + m + " 分钟" + s + " 秒"; } }; /* * 加密解密Common.base64.base64Encode(input) */ NS['base64'] = { //base64加密函数 base64Encode: function(input) { var rv = encodeURIComponent(input); rv = unescape(rv); rv = window.btoa(rv); return rv; }, //base64解密函数 base64Decode: function(input) { var rv = window.atob(input); rv = escape(rv); rv = decodeURIComponent(rv); return rv; } }; /* * 字符串处理的公共方法 */ NS['str'] = { /** * 去除字符串空格 * @param str 要处理的字符串 * @param type 1:全部空格 2:先后空格 3:前空格 4:后空格 */ strTrim: function(str, type) { switch (type) { case 1: return str.replace(/\s+/g, ""); case 2: return str.replace(/(^\s*)|(\s*$)/g, ""); case 3: return str.replace(/(^\s*)/g, ""); case 4: return str.replace(/(\s*$)/g, ""); default: return str; } }, /** * 字母大小写切换 * @param str 要处理的字符串 * @param type 1:首字母大写 2:首页母小写 3:大小写转换 4:所有大写 5:所有小写 */ strChangeCase: function(str, type) { function ToggleCase(str) { var itemText = "" str.split("").forEach( function(item) { if (/^([a-z]+)/.test(item)) { itemText += item.toUpperCase(); } else if (/^([A-Z]+)/.test(item)) { itemText += item.toLowerCase(); } else { itemText += item; } }); return itemText; } switch (type) { case 1: return str.replace(/^(\w)(\w+)/, function(v, v1, v2) { return v1.toUpperCase() + v2.toLowerCase(); }); case 2: return str.replace(/^(\w)(\w+)/, function(v, v1, v2) { return v1.toLowerCase() + v2.toUpperCase(); }); case 3: return ToggleCase(str); case 4: return str.toUpperCase(); case 5: return str.toLowerCase(); default: return str; } }, /** * 字符串替换 * @param str 字符串 * @param aFindText 要替换的字符 * @param aRepText 替换成什么 */ replaceAll: function(str, aFindText, aRepText) { raRegExp = new RegExp(aFindText, "g"); return str.replace(raRegExp, aRepText); }, /** * 查找某个字符或字符串在另外一个字符串中出现的次数 * @param str 字符串 * @param strSplit 要查找的字符或字符串 * @returns {Number} 返回出现的次数 * 例:countStr("klsdjflds","s") 返回2 */ countStr: function(str, strSplit) { return str.split(strSplit).length - 1 } }; /* * 价格模块 */ NS['price'] = { /* *@名称: switch 切换价格 *@参数: float usAmount 美圆价格 * float rate 汇率 *@描述: 使用方法TT_GET('price').switch('价格', '汇率'); *@返回: float */ 'switch': function(usAmount, rate) { var _curr = NS.cookie.get("TT_CURR"); if (_curr == "JPY") { var price = Math.round((usAmount * rate * 10000 + 1) / 10000); } else { var price = (Math.round((usAmount * rate * 1000000 + 1) / 10000) / 100).toFixed(2); } return price; } }; /* * ajax 语言参数 */ NS['lactions'] = { /* *@名称: getId 获取语言ID *@参数: string code 语言代码 *@描述: 使用方法TT_NS.lactions.lang(); *@返回: float */ 'lang': function() { var locations = window.location.href; var lang = /\/es\/|\/ru\/|\/de\/|\/fr\/|\/it\/|\/ar\/|\/pl\/|\/jp\/|\/pt\/|\/en\//; lang = lang.test(locations); if (lang == true) { lang = locations.split("/"); return '&lang=' + lang[3]; } else { return ''; } }, /* *@名称: getId 获取语言ID *@参数: string code 语言代码 *@描述: 使用方法TT_NS.lactions.langShort(); *@返回: float */ 'langShort': function() { var locations = window.location.href; var lang = /\/es\/|\/ru\/|\/de\/|\/fr\/|\/it\/|\/ar\/|\/pl\/|\/jp\/|\/pt\/|\/en\//; lang = lang.test(locations); if (lang == true) { lang = locations.split("/"); return lang[3]; } else { return ''; } } }; NS['AD_TOP'] = { /** * @functionName: 底部提示框 * @param: 无 * @description: 底部广告条,当用户点击关闭按钮的时候,记录cookie值,关掉以后再也不显示,cookie的有效时间为一天。 * @return: 无 */ 'adCookie': '', 'init': function() { var _this = this; _this.showTopAD("#close_topad"); _this.closeTopAd(); }, 'setCookie': function(name, value, day) { var _day = day || 7; var oDate = new Date(); oDate.setDate(oDate.getDate() + _day); document.cookie = name + '=' + value + '; expires =' + oDate; }, 'closeTopAd': function() { var _this = this; $("#close_topad").click(function() { _this.adCookie = $(this).parent().find("img").attr('alt'); _this.setCookie('topAD', _this.adCookie, 1); $(this).parent().hide(); }) }, 'showTopAD': function(obj) { var _this = this; _this.adCookie = $(obj).parent().find("img").attr('alt'); var ckTopAd = NS['cookie'].get('topAD'); if (ckTopAd == _this.adCookie) { $(obj).parent().hide(); } else { $(obj).parent().show(); } } }; //检查email NS['check'] = { 'email': function(email) { var reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/; var isok = reg.test(email); if (!isok) { return false; } else { return true; } } }; return NS; })(window.Common || {}, jQuery);