commonJS,常用js工具方法

说明:平时项目用到的一些常见过滤方法,有些是vue过滤器,稍微修改下吧,我就不改了。

js四舍五入不准确的解决(重写方法):

 

Number.prototype.toFixed = function(length)
        {
            var carry = 0; //存放进位标志
            var num,multiple; //num为原浮点数放大multiple倍后的数,multiple为10的length次方
            var str = this + ''; //将调用该方法的数字转为字符串
            var dot = str.indexOf("."); //找到小数点的位置
            if(str.substr(dot+length+1,1)>=5) carry=1; //找到要进行舍入的数的位置,手动判断是否大于等于5,满足条件进位标志置为1
            multiple = Math.pow(10,length); //设置浮点数要扩大的倍数
            num = Math.floor(this * multiple) + carry; //去掉舍入位后的所有数,然后加上我们的手动进位数
            var result = num/multiple + ''; //将进位后的整数再缩小为原浮点数
            /*
            * 处理进位后无小数
            */
            dot = result.indexOf(".");
            if(dot < 0){
                result += '.';
                dot = result.indexOf(".");
            }
            /*
            * 处理多次进位
            */
            var len = result.length - (dot+1);
            if(len < length){
                for(var i = 0; i < length - len; i++){
                    result += 0;
                }
            }
            return result;
        };

 

 

 

获取链接参数:

//获取链接参数   传参示例     productDetail.html?loanId=17&baseUrl=http://192.168.1.147:8080
function getQueryString(name) {
  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  var reg_rewrite = new RegExp("(^|/)" + name + "/([^/]*)(/|$)", "i");
  var r = window.location.search.substr(1).match(reg);
  var q = window.location.pathname.substr(1).match(reg_rewrite);
  if (r != null) {
    return unescape(r[2]);
  } else if (q != null) {
    return unescape(q[2]);
  } else {
    return null;
  }
}

 

获取url参数,返回对象

// 提取URL中的各个GET参数,返回json对象
function parseQueryString(url){
    var str=url.split("?")[1];
    if(str){
        var iterms = JSON.stringify(str).split("&");
        var arr,Json={};
        for(var i=0;i<iterms.length;i++){
            arr=iterms[i].split("=");
            Json[arr[0]]=arr[1];
        }
        return Json;
    }
};

 

 

 

手机号显示前三后二,其他用星号

formatterPhone: function (val) {                //手机号  显示前三后二
    var strLength = val.length;
    var star = '';
    var strRel = '';
    //星号部分
    var hideSec = val.substring(3, val.length - 2);
    for (var i = 0; i < hideSec.length; i++) {
      star += "*";
    };
    strRel = val.substring(0, 3) + star + val.substr(val.length - 2);
    return strRel;
  },

 

姓名显示第一个字:

formatterName: function (val) {                //姓名  显示第一个字
    var strLength = val.length;
    var star = '';
    var strRel = '';
    //星号部分
    var hideSec = val.substring(1, val.length);
    for (var i = 0; i < hideSec.length; i++) {
      star += "*";
    };
    strRel = val.substring(0, 1) + star;
    return strRel;
  },

 

过滤金额,没三位用逗号隔开

formatMoneyNumber(n){       //过滤金额,每三位用逗号隔开
    var b=parseInt(n).toString();  
    var len=b.length;  
    if(len<=3){return b;}  
    var r=len%3;  
    return r>0?b.slice(0,r)+","+b.slice(r,len).match(/\d{3}/g).join(","):b.slice(r,len).match(/\d{3}/g).join(",");  
  } 

 

保留两位小数:

formatterNumPoint2: function (val) {                //保留两位小数  如果是空,则返回0.00
    if (!val) {
      return '0.00';
    } else {
      var res = parseFloat(val).toFixed(2);
      return res;
    }
  }

 

获取当前时间:

// 获取当前时间
function getNowTime() {
    var date = new Date();
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var strDate = date.getDate();
    var HH = date.getHours();
    var mm = date.getMinutes(); //获取当前分钟数(0-59)
    var ss = date.getSeconds(); //获取当前秒数(0-59)  
    if (month >= 1 && month <= 9) {
        month = "0" + month;
    }
    if (strDate >= 0 && strDate <= 9) {
        strDate = "0" + strDate;
    }
    var currentdate = year + "-" + month + "-" + strDate + " " + HH + ":" + mm + ":" + ss;
    return currentdate;
}

 

 复制到剪切板(放到ajax内部无效,需要单独触发):

// 拷贝内容
function copyToClipboard(txt) {
    var oInput = document.createElement('input');
    oInput.value = txt;
    document.body.appendChild(oInput);
    oInput.select(); // 选择对象
    document.execCommand("Copy"); // 执行浏览器复制命令
    oInput.className = 'oInput';
    oInput.style.display = 'none';
    return true;
}

 

 

正则验证:

var validatePhone = function (rule, value, callback) {            //验证手机号        11位数字
    var reg = /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/;
    if (!reg.test(value)) {
        callback(new Error('请输入正确的手机号码'))
    } else {
        callback();
    }
};

 

posted @ 2018-06-21 15:55  LIULIULIU666  阅读(469)  评论(0编辑  收藏  举报