欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

项目中常用到的一些方法整理

程序员文章站 2022-07-01 23:44:43
1、判断当前浏览器类型 2、判断字符串中是否包含中文 3、判定对象是否为空 4、将数组中的id组成字符串,用@连接 5、使用el tooltip组件 javascript getTableBody: function (tab) { if (!tab || tab.name != 'nav1' && ......

1、判断当前浏览器类型

function isbrower(){
   var ua = navigator.useragent.tolowercase();
   var ismiscro = ua.indexof("micromessenger")>-1;//微信浏览器
    var ischrome = ua.indexof('chrome')>-1 && ua.indexof('safari')>-1; //谷歌浏览器
    var issafari = ua.indexof('safari')>-1 && ua.indexof('chrome')==-1; //safari浏览器
    var isfirefox = ua.indexof('firefox')> -1; //火狐浏览器
    var isopera = ua.indexof('opera')> -1; //opera浏览器
    var isie = ua.indexof("compatible") > -1 && ua.indexof("msie") > -1 && !ua.indexof("opera") > -1; //ie浏览器
}

2、判断字符串中是否包含中文

function ishaschinese(str){
     var reg = new regexp("[\\u4e00-\\u9fff]","g");
     return reg.test(str);
}

3、判定对象是否为空

function isnull(data){
     return ( (data == "" || data == "undefined" || data ==         undefined) ? true :false);
}

4、将数组中的id组成字符串,用@连接

strids =  item.data.map(function(ditem){
    return  ditem.tableid
}).join("@");

5、使用el-tooltip组件

<span class="text2" @mouseenter="showtooltip($event)"
@mouseleave="hiddentooltip($event)">{{item.frequency1}}</span>

<el-tooltip ref="texttooltip" effect="light" :content="texttooltipcontent" placement="top-start"></el-tooltip>
showtooltip: function (event) {
  var ev = event || window.event;
  var eventname = ev.target.classname;
  if (eventname.indexof('text') != -1) {
    if (ev.target.offsetwidth < ev.target.scrollwidth) {
      var tooltip = this.$refs.texttooltip;
      this.texttooltipcontent = ev.target.innertext;
      tooltip.referenceelm = ev.target;
      tooltip.$refs.popper.style.display = 'none';
      tooltip.dodestroy();
      tooltip.setexpectedstate(true);
      tooltip.handleshowpopper();
    }
  }
},
hiddentooltip: function () {
  const tooltip = this.$refs.texttooltip;
  if (tooltip) {
    tooltip.setexpectedstate(false);
    tooltip.handleclosepopper();
  }
}

6、滚动条定位在有颜色显示的位置

gettablebody: function (tab) {
  if (!tab || tab.name != 'nav1' && tab.name != 'nav3') {
    var _this = this;
    settimeout(function () {
      _this.curtopheight.foreach(function (e, index) {
        var eltable = document.getelementsbyclassname('el-table__body-wrapper')[index];
        if (eltable) {
          var td = eltable.getelementsbyclassname('cell')[0];
          var tdwindth = parseint(td.style.width) * e.left;
          document.getelementsbyclassname('el-table__body-wrapper')[index].scrolltop = e.height;
          document.getelementsbyclassname('el-table__body-wrapper')[index].scrollleft = tdwindth;
        }
      })
    }, 1200);
  }
}

//找到表格中带有颜色的数据

findcolortext: function (data) {
  var height = 24;
  var left = 0;
  var _this = this;
  if (data && data.length) {
    var stop = true;
    data.foreach(function (item, index) {
      if (stop) {
        var _index = index;
        for (var i in item) {
          if (item[i].indexof('color') != -1) {
            height = _index * height;
            left = i.replace('column_key', '');
            _this.curtopheight.push({
              'height': height,
              'left': left
            });
            stop = false;
            break;
          }
        }
      }
    })
  }
},

7、动态设置el-loading-mask的高度

getexception:function(){
    var odiv = $('#exceptiondiv')[0];
    var pdiv = $('#el-exception-pane')[0];
    var divheight = pdiv.offsetheight > odiv.offsetheight ? pdiv.offsetheight : odiv.offsetheight;
    settimeout(function(){
        var mdiv = pdiv.children[1];
        mdiv.style.height = divheight +'px';
    },1000);
}

8、判断字符串的类型

isstring: function (str) {
  return 'string' == utils.getdatatype(str);
},
isarray: function (str) {
  return 'array' == utils.getdatatype(str);
},
isobject: function (str) {
  return 'object' == utils.getdatatype(str);
},
isfunction: function (str) {
  return 'function' == utils.getdatatype(str);
},
isnumber: function (str) {
  return 'null' !== str + '' && str !== '' && !isnan(str);  //'number' == utils.getdatatype(str);
},
isdate: function (str) {
  return 'date' == utils.getdatatype(str);
},
isdatestr: function (str) {
  return utils.datestrcheck(str);
  //return  'object' == utils.isobject(str) && str instanceof date;
},
getdatatype: function (str) {
  type = object.prototype.tostring.call(str).slice(8, -1);
  return type;
},

slice(8,-1)意思是从第8位开始(包含第8位)到最后一位之前(-1的意思就是最后一位,不包含最后一位);
object.prototype.tostring.call(boj)这个是用来判断数据类型,
如果boj是数字,得出的结果是[object number],从零开始数,第8位就是n,最后一位的前一位就是r,所以取得number;
如果boj是字符串,得出结果是[object string],第8位s,最后一位的前一位g,取得string

9、删除左右两端的空格

trim: function (str) { //删除左右两端的空格
  return str.replace(/(^\s*)|(\s*$)/g, "");
}

10、转换成 浏览器兼容的时间格式对象

tranfercompatibledate: function (vdate) {
  //var vdate = (typeof vdate == 'string' ? vdate.split('.')[0] : vdate);
  if (utils.isstring(vdate) && utils.isdatestr(vdate)) {
    vdate = vdate.replace(new regexp(/-/gm), '/'); //将所有的'-'转为'/'即可 解决ie、firefox浏览器下js的new date()的值为invalid date、nan-nan的问题
    return new date(vdate);
  } else if (utils.isstring(vdate)) { //针对这种数据先如此处理 "2017-04-15t10:56:31.958z"
    return new date(vdate);
  } else if (utils.isdate(vdate)) { //标准日期格式  sat apr 15 2017 13:54:50 gmt+0800 (中国标准时间)
    return new date(vdate);
  } else if (utils.isnumber(vdate) || utils.isobject(vdate)) {
    try {
      return new date(vdate);
    } catch (e) {
      console.error('传入的对象=' + vdate + '转换成日期对象异常!');
      return vdate;
    }
  } else {
    console.error('传入的date=' + vdate + '不是正确的日期格式!');
    return;
  }
}

11、查询两个日期间隔天数

datedaygap: function (datestrbegin, datestrend) { 
  if (!datestrbegin || !datestrend) return 0;
  var date1 = utils.tranfercompatibledate(datestrbegin);
  var date2 = utils.tranfercompatibledate(datestrend);
  var s1 = date1.gettime(),
    s2 = date2.gettime();
  var total = (s2 - s1) / 1000;
  var day = parseint(total / (24 * 60 * 60)); //计算整数天数
  return day;
},

12、数组去重

getarraynorepeated: function (arr) {
  if (utils.checkobjtypeisinvalid(arr, 'array')) return arr;
  var res = [];
  var json = {};
  for (var i = 0; i < arr.length; i++) {
    if (!json[arr[i]]) {
      res.push(arr[i]);
      json[arr[i]] = 1;
    }
  }
  return res;
}