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编辑  收藏  举报

导航