【js Utils】web前端工具帮助类kikyoUtils

  1 /*
  2  *  本插件由网上收集整理,转载请附上原文出处链接及本声明。
  3  *  author:kikyoqiang
  4  *  name:kikyoUtils
  5  *  博客:https://www.cnblogs.com/kikyoqiang/
  6  */
  7 
  8 //  ==============================  通用参数 开始  ======================================================================
  9 
 10 var public_closeTimeout = 1000;// 关闭窗口时间
 11 var public_closeTimeout_error = 2000;// 关闭窗口时间
 12 var public_shade = 0.3;// 遮罩
 13 var public_anim = 3;// 动画模式
 14 
 15 //  ==============================  prototype 原型方法开始  ======================================================================
 16 
 17 /*
 18  * string格式化
 19  *
 20  var result1 = "我是{0},今年{1}了".format("张三", 22);
 21  var result2 = "我是{name},今年{age}了".format({ name: "张三", age: 22 });
 22  */
 23 String.prototype.format = function (args) {
 24     var result = this;
 25     if (arguments.length <= 0) {
 26         return result;
 27     }
 28     if (arguments.length == 1 && typeof (args) == "object") {
 29         for (var key in args) {
 30             if (args[key] == undefined) {
 31                 continue;
 32             }
 33             var reg = new RegExp("({" + key + "})", "g");
 34             result = result.replace(reg, args[key]);
 35         }
 36     }
 37     else {
 38         for (var i = 0; i < arguments.length; i++) {
 39             if (arguments[i] == undefined) {
 40                 continue;
 41             }
 42             var reg = new RegExp("({)" + i + "(})", "g");
 43             result = result.replace(reg, arguments[i]);
 44         }
 45     }
 46     return result;
 47 };
 48 //  ==============================  prototype 原型方法结束  ======================================================================
 49 
 50 
 51 //  ==============================  pubUtil 创建对象开始  ============================================================
 52 
 53 var PubUtil = function () { };
 54 PubUtil.prototype = {
 55     /*
 56      * 获得当前系统的时间
 57      */
 58     getLangDate: function () {
 59         var dateObj = new Date(); //表示当前系统时间的Date对象
 60         var year = dateObj.getFullYear(); //当前系统时间的完整年份值
 61         var month = dateObj.getMonth() + 1; //当前系统时间的月份值
 62         var date = dateObj.getDate(); //当前系统时间的月份中的日
 63         var day = dateObj.getDay(); //当前系统时间中的星期值
 64         var weeks = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
 65         var week = weeks[day]; //根据星期值,从数组中获取对应的星期字符串
 66         var hour = dateObj.getHours(); //当前系统时间的小时值
 67         var minute = dateObj.getMinutes(); //当前系统时间的分钟值
 68         var second = dateObj.getSeconds(); //当前系统时间的秒钟值
 69         var timeValue = "" + ((hour >= 12) ? (hour >= 18) ? "晚上" : "下午" : "上午"); //当前时间属于上午、晚上还是下午
 70         var newDate = dateFilter(year) + "-" + dateFilter(month) + "-" + dateFilter(date) + " " +
 71             dateFilter(hour) + ":" + dateFilter(minute) + ":" + dateFilter(second);
 72         return newDate;
 73     },
 74     /*
 75      * 将form表单元素的值序列化成对象
 76      */
 77     serializeObject: function (form) {
 78         var o = {};
 79         $.each(form.serializeArray(), function (index) {
 80             if (o[this['name']]) {
 81                 o[this['name']] = o[this['name']] + "," + this['value'];
 82             } else {
 83                 o[this['name']] = this['value'];
 84             }
 85         });
 86         return o;
 87     },
 88     /*
 89      * 根据对象加载表单数据
 90      */
 91     loadInput: function (body, model) {
 92         var inputArray = body.find("input[type='text']");// 取到所有的input text
 93         var telArray = body.find("input[type='tel']");// 取到所有的input text
 94         var hidden = body.find("input[type='hidden']");// 取到所有的input text
 95         var textarea = body.find("input[type='textarea']");// 取到所有的input text
 96         var textarea2 = body.find("textarea");// 取到所有的input text
 97         $.merge(inputArray, telArray);
 98         $.merge(inputArray, hidden);
 99         $.merge(inputArray, textarea);
100         $.merge(inputArray, textarea2);
101         inputArray.each(function () {
102             var input = $(this);// 循环中的每一个input元素
103             var name = input.attr("name");
104             if (model[name] != "") {
105                 input.val(model[name]);
106             }
107         });
108     },
109     /*
110      * 是否是微信端
111      */
112     isWeiXin: function () {
113         var ua = window.navigator.userAgent.toLowerCase();
114         return ua.match(/MicroMessenger/i) == 'micromessenger';
115     },
116     /*
117      * 是否是微信端(判断有问题,不推荐)
118      */
119     isMobile: function () {
120         var ismobile = false;
121         browser = {
122             versions: function () {
123                 var u = navigator.userAgent, app = navigator.appVersion;
124                 return {
125                     trident: u.indexOf('Trident') > -1, //IE内核
126                     presto: u.indexOf('Presto') > -1, //opera内核
127                     webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
128                     gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
129                     mobile: !!u.match(/AppleWebKit.*Mobile.*/) || !!u.match(/AppleWebKit/), //是否为移动终端
130                     ios: !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
131                     android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
132                     iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器
133                     iPad: u.indexOf('iPad') > -1, //是否iPad
134                     webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
135                 };
136             }(),
137             language: (navigator.browserLanguage || navigator.language).toLowerCase()
138         };
139         ismobile = browser.versions.mobile;
140         return ismobile;
141     },
142     /*
143      * 是否是PC
144      */
145     isPC: function () {
146         var userAgentInfo = navigator.userAgent;
147         var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
148         var flag = true;
149         for (var v = 0; v < Agents.length; v++) {
150             if (userAgentInfo.indexOf(Agents[v]) > 0) {
151                 flag = false;
152                 break;
153             }
154         }
155         return flag;
156     },
157     /*
158      * 打开新窗口
159      */
160     openWin: function (url, winName, width, height) {
161         //获得窗口的垂直位置
162         var iTop = (window.screen.availHeight - 30 - height) / 2;
163         //获得窗口的水平位置
164         var iLeft = (window.screen.availWidth - 10 - width) / 2;
165         window.open(url, winName, 'height=' + height + ',,innerHeight=' + height + ',width=' + width + ',innerWidth=' + width + ',top=' + iTop + ',left=' + iLeft +
166             ',status=no,toolbar=no,menubar=no,location=no,resizable=no,scrollbars=3,titlebar=no');
167         // window.open("AddScfj.aspx", "newWindows", 'height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no');
168     },
169     /*
170      * 获取url参数的值
171      */
172     getQueryString: function (name) {
173         var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
174         var r = window.location.search.substr(1).match(reg);
175         if (r != null) return decodeURI(r[2]);
176         return null;
177     }
178 };
179 function dateFilter(date) {
180     return date < 10 ? ("0" + date) : date;
181 };
182 var pubUtil = new PubUtil();
183 
184 //  ==============================  pubUtil 创建对象结束  ======================================================================
185 
186 function setCookie(name, value) {
187     var Days = 30;
188     var exp = new Date();
189     exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
190     document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString();
191 }
192 
193 function getCookie(name) {
194     var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
195     if (arr = document.cookie.match(reg))
196         return unescape(arr[2]);
197     else
198         return "";
199 }
原文地址:https://www.cnblogs.com/kikyoqiang/p/12561014.html