/** * 辅助对象 */ var auxiliary = function(){} auxiliary.prototype = { nullBool : function(param){ // 对象为空判断 为空返回true,反之false if(null === param || undefined === param )return true; return false; } , strBool : function(param){ // string判断 为空返回true,反之false if( this.nullBool(param) || "" === param || param.length === 0 )return true; return false; } , arrBool : function(param){ // arraty判断 length不为零 为空返回true,反之false if(null === param || undefined === param || param.length === 0)return true; return false; } , mapBool : function(param){ // 判断map是否为空 为空返回true,反之false for (var t in param) return !1; return !0 } , jsonBool : function(param) { // 判断json是否可用,true为不可用,false反之 if( this.nullBool(param) || this.getMapSize(param) === 0 )return true; return false; } , initError : function(param){ // 初始化异常: 为空返回true,反之false if(null === param || undefined === param){ alert("初始化页面异常,请刷新页面重新尝试!"); return true; } return false; } , isArray : function(obj){ // 判断是否是array return (typeof obj=='object')&&obj.constructor==Array; } , isString : function(str){ // 判断是否是字符串 return (typeof str=='string')&&str.constructor==String; } , isNumber : function(obj){ // 判断是否是数值 return (typeof obj=='number')&&obj.constructor==Number; } , isDate : function(obj){ // 是否是时间对象 return (typeof obj=='object')&&obj.constructor==Date; } , isFunction : function(obj){ // 判断是否是函数 return (typeof obj=='function')&&obj.constructor==Function; } , isObject : function(obj){ // 判断是否是对象 return (typeof obj=='object')&&obj.constructor==Object; } , getMapSize : function(map){ // 获取map的个数 var index = 0 ; if(this.nullBool(map))return index; for(var s in map){ ++index; } return index; } , isIEBrowser : function(){ // ie浏览器判断,是返回true return !!window.ActiveXObject || "ActiveXObject" in window ? true : false; } , mapMerge : function( coverMap , subjectMap ) { // 将两个map合并成一个map // coverMap 覆盖map,即两个map中有相同子元素,以覆盖此map中元素为准 var map = JSON.parse(JSON.stringify(coverMap)); var map2 = JSON.parse(JSON.stringify(subjectMap)); for( var s in map2 ){ map[s] = map2[s]; } return map; } , deepCopy : function(obj){ // 深拷贝 return JSON.parse(JSON.stringify(obj)); } , numForEach : function(num , func){ for( var i = 0 ; i < num ; i++ ){ // 数循环 func(i) } } , arrForEach : function(arr , func) { // 经测试,双重循环100次(10000次循环)比for循环 差 0.5秒 try{ for( var i = 0 ; i < arr.length ; i++ ){ // arr对象循环 var bool = func(arr[i] , i); if(true === bool){ return; } } } catch(e){ console.log(e); } } , isChildren : function (contrastObj , boolObj) { // 判断是否是指定对象子类或自身 , 是返回true var result = false; if(!this.nullBool(contrastObj) && !this.nullBool(boolObj)){ if("body" === boolObj[0].nodeName.toLowerCase()){ result = false; }else{ var boolResult = $(contrastObj).is(boolObj); if(boolResult){ result = true; }else{ result = this.isChildren(contrastObj , $(boolObj).parent()); } } } return result; } , getCoords : function(el){ // 获取元素在页面中的坐标 var box = el.getBoundingClientRect(), doc = el.ownerDocument, body = doc.body, html = doc.documentElement, clientTop = html.clientTop || body.clientTop || 0, clientLeft = html.clientLeft || body.clientLeft || 0, top = box.top + (self.pageYOffset || html.scrollTop || body.scrollTop ) - clientTop, left = box.left + (self.pageXOffset || html.scrollLeft || body.scrollLeft) - clientLeft return { 'top': top, 'left': left }; } , checkEmail : function(str){ // 邮箱验证 var re = /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/; if (re.test(str)) { return true; } else { return false; } } , checkMobile : function(str){ // 手机验证 , 11位数字,以1开头。 var re = /^1\d{10}$/; if (re.test(str)) { return true; } else { return false; } } , checkUser : function(str){ // 验证帐号是否合法,字母、数字、下划线组成,字母开头,4-16位。 var re = /^[a-zA-z]\w{4,15}$/; if (re.test(str)) { return true; } else { return false; } } , checkFullAngle : function(str){ // 判断是否有全角 , 有返回true var str2=str.match(/[\uff00-\uffff]/g); if(null === str2){ return false; }else{ return true; } } , chackStr : function(str){ // 判断是否有特殊符号 和 数字 ,有返回true var regEn = /[-`~!@#$%^&*()_=+<>?:"{},\\\\.\/;'[\]]/im, regCn = /[·!#¥(——):;“”‘、,|《。》?、【】[\]]/im; if(regEn.test(str) || regCn.test(str)) { // 包含返回true return true; } return false; } , getSelectAttr : function(select , attrName){ return $($(select).children("option:selected")).attr(attrName); } , getEventSource : function(event){ // 获取事件源对象 return (bool.isIEBrowser() ? event.srcElement : event.target); } , addPropertychange : function(Obj , func){ // 给input添加文本改变事件 if(this.arrBool($(Obj))){ console.log("文本改变监控创建失败!"); return; } $(Obj).unbind().on('input propertychange',func); } , addBlur : function(Obj , func){ // 给input对象添加鼠标光标离开事件 $(Obj).blur(func); } , timingTask : function(func , hours , minutes , seconds){ // 每天指定时间执行 var time = new Date(); // 当前时间 var time2 = new Date(); // 下一天时间 time2.setDate(time.getDate() + 1); time2.setHours(hours); time2.setMinutes(minutes); time2.setSeconds(seconds); var doIT = function(){ func(); setTimeout(doIT, 24 * 60 * 60 * 1000); } setTimeout(doIT, time2 - time); } , strRegHandle : function(str){ // 字符串正则处理 if(arguments.length == 0) return this; var obj = arguments[0]; var s = this; for(var key in obj) { s = s.replace(new RegExp("\\{\\{" + key + "\\}\\}", "g"), obj[key]); } return s; } } // ------------------------------------ 字符串正则处理 ----------------------------------------------------- String.prototype.format = function() { if(arguments.length == 0) return this; var obj = arguments[0]; var s = this; for(var key in obj) { s = s.replace(new RegExp("\\{\\{" + key + "\\}\\}", "g"), obj[key]); } return s; } /*// 测试代码 var data = { name:"张三", age:23, sex:"男" } var text = "我叫{{name}},我今年{{age}}岁,我的性别是{{sex}}!".format(data); // console.log(text); // 我叫张三,我今年23岁,我的性别是男! */ // ---------------------------------------------- 颜色转变类型 // ------------------------------------------------------- var reg = "/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/"; // 十六进制颜色值的正则表达式 // 颜色转换,RGB颜色转换为16进制 (处理边界填充) String.prototype.colorHex = function(){ var that = this; if(/^(rgb|RGB)/.test(that)){ var aColor = that.replace(/(?:\(|\)|rgb|RGB)*/g,"").split(","); var strHex = "#"; for(var i=0; i nextDate || nowDate === nextDate)runnable = false; nowDate = new Date().getTime(); } } // 页面loading /** * 增加页面loading 包含8种loading,只用更换spinner,例如:spinner1 * @param time 2018_3_17 14:04 * @param author Sixgod */ var loadingShow = function() { $("body").append("
"); $(".fakeloader").fakeLoader({ timeToHide : 500000000, bgColor : "rgba(16, 10, 9, 0.22)", spinner : "spinner3" }); } /** * 删除页面loading * @param time 2018_3_17 14:04 * @param author Sixgod */ var loadingClear = function(){ $('.fakeloader').remove(); } /** * 全局变量 */ var fn_tool = new auxiliary();