js常用函数

1.ajax请求前后置按钮无效、有效
/*================ 20160918 置按钮有效和无效  ==================*/
function disableAllButtons(){
     var btns = document.getElementsByTagName("button");
     for(var i=0;i<btns.length;i++){
          btns[i].disabled = true;
     }

}

function enableAllButtons(){
    var btns = document.getElementsByTagName("button");
     for(var i=0;i<btns.length;i++){
          btns[i].disabled = "";
     }

}
2.判断变量、对象是否为空
function isEmptyVariable(obj){
    if(obj == undefined || obj == 'undefined' || obj == null || obj == "null" || obj == ""){
        return true;
    }

    return false;
}

//判断是否为空对象
function isEmptyObject(obj){
    if(obj == undefined || obj == null ){return true;}
    for(var n in obj){ return false; } 
    return true; 
} 
3.保留两位有效数字
//两个浮点数求和
function accAdd(num1,num2){
   var r1,r2,m;
   try{
       r1 = num1.toString().split('.')[1].length;
   }catch(e){
       r1 = 0;
   }
   try{
       r2=num2.toString().split(".")[1].length;
   }catch(e){
       r2=0;
   }
   m=Math.pow(10,Math.max(r1,r2));
   // return (num1*m+num2*m)/m;
   return Math.round(num1*m+num2*m)/m;
}

//保留小数点后两位有效数字0.001344 处理后结果时0.0013 
/*
 * @param number 要处理的数字
 * @param bits 保留的有效数字的位数
 *
 * */
function processNumberWithValidBits(number, bits){
    var arr = number.toString().split(".");
    if(arr == undefined || arr.length != 2){
        return number;
    }

    var tempStr = arr[1];
    var newStr = [];
    var count = 0;

    var delta = 0;//因四舍五入需要加的增量

    for(var i=0; i<tempStr.length && count<bits; i++){

        if(tempStr[i] != 0 || count > 0){ //20161010 从小数点后第一个不为0的数字开始计算位数
            count++;
        }

        if(count == bits && i<tempStr.length-1){//考虑四舍五入
            if(parseInt(tempStr[i+1]) >= 5){

                newStr.push(parseInt(tempStr[i]));

                delta += Math.pow(0.1,(i+1)).toFixed(i+1);

                continue;
            }
        }

        newStr.push(tempStr[i]);
    }//for


    var newNumberStr = arr[0];

    if(newStr.length>0){
        newNumberStr = arr[0] + '.' + newStr.join("");
    }

    console.log("newNumberStr: " + parseFloat(newNumberStr) + "; delta: " + parseFloat(delta));

    return accAdd(parseFloat(newNumberStr),delta);
}
4.整数每三位用逗号分割显示
//将数字每三位用逗号隔开 显示
function format_number(n){
      //console.log("n:" + n);
       n = processNumberWithValidBits(n, 2);
      console.log("processNumberWithValidBits n: " + n);
       var arr = n.toString().split(".");

       var integerPart = parseInt(n).toString();
       var decimalPart = "";

       if(arr != undefined && arr.length == 2){//小数
           integerPart = arr[0];//整数部分
           decimalPart = arr[1];//小数部分
       }

       var b=integerPart;
       var len=b.length;
       var result = b;
       if(len>3){
           var r=len%3;
           result =  r>0?b.slice(0,r)+","+b.slice(r,len).match(/\d{3}/g).join(","):b.slice(r,len).match(/\d{3}/g).join(",");
       }


       if(decimalPart != ""){
           result += '.' + decimalPart;
       }

       //console.log("integerPart: " + integerPart + "; decimalPart: " + decimalPart);

       return result;
}
5.日期格式化
Date.prototype.format = function(){
    var y = this.getFullYear();
    var m = this.getMonth()+1;
    var d = this.getDate();
    var hh = this.getHours();
    var mm = this.getMinutes();
    var ss = this.getSeconds();

    //var hour = date.get
    function formatNumber(value){
    if(value < 10){
    value = '0' + value;
    }
    return value;
    }
    return y + '-'+ formatNumber(m) + '-'+ formatNumber(d); 
    //+ " " + formatNumber(hh) + ":" + formatNumber(mm) + ":" + formatNumber(ss);
}
//可自定义格式
Date.prototype.format = function(format) {
    var date = {
        "M+": this.getMonth() + 1,
        "d+": this.getDate(),
        "h+": this.getHours(),
        "m+": this.getMinutes(),
        "s+": this.getSeconds(),
        "q+": Math.floor((this.getMonth() + 3) / 3),
        "S+": this.getMilliseconds()
    };
    if (/(y+)/i.test(format)) {
        format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
    }
    for (var k in date) {
        if (new RegExp("(" + k + ")").test(format)) {
            format = format.replace(RegExp.$1, RegExp.$1.length == 1
                ? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
        }
    }
    return format;
};
6.查找数组元素indexOf
if(!Array.prototype.indexOf) {
    Array.prototype.indexOf = function (value) {

        for (var i = 0; i < this.length; i++) {
            if (this[i].id == value) return i;
        }
        return -1;
    };
}
7.字符串去掉前后空格
if(!String.prototype.trim) {
    String.prototype.trim = function () {
        if (this != undefined) {
            return this.replace(/(^\s*)|(\s*$)/g, '');
        } else {
            return "";
        }
    };
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值