js整理常用方法
javascript对象合并或追加属性的方法 function objMerger(obj1, obj2){ for(var r in obj2){ //eval("obj1."+r+"=obj2."+r); //或 obj1[r] = obj2[r]; //obj1.r或obj2.r错误的 } return obj1; } var obj = {a:'aa',b:'bb'}; var shuxing = {c:'c1',d:'d1',e:55} obj = objMerger(obj, shuxing); console.log(obj); console.log(obj.a+'__'+obj['a']); //这是正确的;obj[a]错误的 上面的例子中:r是一个变量,a和b是变量名字,故变量名字可以直接用.或['变量名字'],而变量只能用[变量]
//验证字符个数 function checkNum(chars){ var sum = 0; for(var i=0;i<chars.length;i++){ var c = chars.charCodeAt(i); if((c>=0x0001 &&c<=0x007e)||(0xff60<=c && c<=0xff9f)){ sum++; }else{ sum+=2; } } return sum; }
//判断input只能输入数字 function IsNum(e) { var k = window.event ? e.keyCode : e.which; if (((k >= 48) && (k <= 57)) || k == 8 || k == 0) { } else { if (window.event) { window.event.returnValue = false; } else { e.preventDefault(); //for firefox } } }
//编码url function getEscapeParamStr (jsonData){ if (!jsonData) return ''; var qarr = []; for(i in jsonData){ qarr.push(i+"="+encodeURIComponent(jsonData[i])); } return qarr.join('&'); }
/* * 判断对象是否为空 * return boolean 为空返回true,否则返回false * (例如为obj = {} 或 obj = null都是为空的) */ function isNullObject(object){ if(!object)return true; for(var i in object){ return false; } return true; }
/** * 合并对象,把对象obj2合并到对象obj1上 * @param obj1 * @param obj2 * @returns */ function objMerger(obj1, obj2){ for(var r in obj2){ obj1[r] = obj2[r]; } return obj1; }
/** * 输出对象属性个数 * @param obj * @returns {Number} */ function countObject(obj){ var num = 0; if(!obj)return num; for(var i in obj){ num ++; } return num; }
function checkTime (startTime,endTime,type){ if(!startTime){ jsAlert('起始日期不能为空'); return false; } if(!endTime){ jsAlert('结束日期不能为空'); return false; } if( startTime > endTime){ jsAlert('请输入正确的日期范围'); return false; } var myDate = new Date(); var date = myDate.getFullYear()+"-"+(myDate.getMonth()+1)+"-"+myDate.getDate(); //当前时间和开始时间相差天数 var day = dateDiff('D',startTime,date); if(day > 180){ jsAlert('开始时间在180天内'); return false; } //结束时间和开始时间相差天数 day = dateDiff('D', startTime, endTime); if('list' == type){ if(day > 14){ jsAlert('开始时间结束时间之间不能超过2周'); return false; } }else if('export' == type){ if(day > 31){ jsAlert('导出时时间范围在1个月(31)天内'); return false; } } return true; }
//计算日期差 function dateDiff(interval, date1, date2) { var objInterval = { 'D':1000 * 60 * 60 * 24, 'H':1000 * 60 * 60, 'M':1000 * 60, 'S':1000, 'T':1 }; interval = interval.toUpperCase(); var dt1 = new Date(Date.parse(date1.replace(/-/g, '/'))); var dt2 = new Date(Date.parse(date2.replace(/-/g, '/'))); try { return Math.round((dt2.getTime() - dt1.getTime()) / eval('objInterval.'+interval)); } catch (e) { return e.message; } }
autoClearCache(); //js刷新页面js缓存的方法 function autoClearCache(){ var clearCacheHtml= '' +'<META HTTP-EQUIV="pragma" CONTENT="no-cache">' +'<META HTTP-EQUIV="Cache-Control" CONTENT="no-store, must-revalidate">' +'<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">' +' <META HTTP-EQUIV="expires" CONTENT="0"> '; $('head').append(clearCacheHtml); }
//动态的引入js文件或在一个js文件中引入另一个js文件 //document.write("<script type='text/javascript' language='javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js' ></script>"); //window.location.reload(); var src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js'; LoadJS(src); init(); var num = 0; function init(){ num++; var datas = {_t:0,category:9999,mid:3646697885979296,soururl:'',srvid:''}; datas.reason ='找不到张艺谋”,谁信?'+num; var url = "http://hot.weibo.com/ajax/addone?__rnd=1384929440619"; $.post(url,datas,function(msg){ console.log(num); if(num < 10){ setTimeout(init,800); } }); } function LoadJS(src){ var headObj = document.getElementsByTagName("head")[0]; srciptObj = document.createElement("script"); srciptObj.language = "javascript"; srciptObj.type = "text/javascript"; srciptObj.src = src; headObj.appendChild(srciptObj); }
//检测对象是否为空 function type(o){ return (o === null) ? "null" : (typeof o); }
// 安全检测JavaScript基本数据类型和内置对象 // 参数:o表示检测的值 /* 返回值:返回字符串"undefined"、"number"、"boolean"、 "string"、"function"、"regexp"、"array"、"date"、"error"、"object"或"null" */ function typeOf(o){ var _toString = Object.prototype.toString; // 获取对象的toString()方法引用 // 列举基本数据类型和内置对象类型,可以进一步补充该数组的检测数据类型范围 var _type ={ "undefined" : "undefined", "number" : "number", "boolean" : "boolean", "string" : "string", "[object Function]" : "function", "[object RegExp]" : "regexp", "[object Array]" : "array", "[object Date]" : "date", "[object Error]" : "error" } return _type[typeof o] || _type[_toString.call(o)] || (o ? "object" : "null"); } //应用示例: var a = Math.abs; alert(typeOf(a)); //"function"
日期时间转换(int类型的时间戳转换为年月日时分秒) function getLocalTime(nS) { return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' '); } 或 cache.ltime = new Date(parseInt(detail.created_time)*1000).toLocaleString().replace(/[年月]/g,'/').replace(/[日]/g,'');
posted on 2013-11-14 10:59 andydaopeng 阅读(350) 评论(0) 编辑 收藏 举报