前端实用小方法

提取URL中的某个查询字符串的值
       getParams() {        
          let url = localtion.search;
          var param = {};
          if (url.indexOf('?') != -1) {
            let query = url.slice(url.indexOf('?')).slice(1);
            let strs = query.split('&');
            for (var i = 0; i < strs.length; i++) {
              param[strs[i].split('=')[0]] = strs[i].split('=')[1];
            }
          }
          return param;   
        }
           
        getQueryString(name) {   
           var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');   
           var r =    window.location.search.substr(1).match(reg);   
           if (r != null) {       
               return unescape(r[2]);   
             }  
               return '';
        }
将一个对象序列化
     convertObjtoStr(obj) {
        let str = '';
        for (const key in obj) {
          str = str + key + '=' + obj[key] + '&';
        }
        str = str.substring(0, str.length - 1);
        return str;
      }
去除移动端的滚动条
    .container ::-webkit-scrollbar {  display: none;  -webkit-overflow-scrolling: touch;  scroll-behavior: none;}
    ::-webkit-scrollbar-button {  background: transparent;}
    ::-webkit-scrollbar-track {  background: transparent;}
    ::-webkit-scrollbar-track-piece {  background: transparent;}
    ::-webkit-scrollbar-thumb {  background: transparent;}::-webkit-scrollbar-corner {  background: transparent;}
    ::-webkit-resizer {  background: transparent;}
    ::-webkit-scrollbar {  background-color: transparent;  height: 0;}
函数节流
  throttle(fn, interval) {
    var timer;
    return function() {
      var args = arguments;
      var _this = this;
      if (timer) {
        return false;
      }
      timer = setTimeout(function() {
        clearTimeout(timer);
        timer = null;
        fn.call(_this, args);
      }, interval);
    };
  },


获取cookie
  getCookie(name) {
    var arr,
      reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)');
    if ((arr = document.cookie.match(reg))) {
      return unescape(arr[2]);
    } else {
      return null;
    }
  },
获取平台
  getPlatform() {
    if (navigator.userAgent.toLowerCase().indexOf('iphone') > -1 || navigator.userAgent.toLowerCase().indexOf('ipad') > -1) {
      return 'iphone';
    } else if (navigator.userAgent.toLowerCase().indexOf('android') > -1) {
      return 'aphone';
    }
    return 'other';
  }
隐藏身份证号 11 位

    formatIdentity(number) {
        number += '';
        return number.replace(/(\d{3})\d*(\d{4})/g, '$1***********$2')
    },
隐藏手机号中间4位
 
    formatPhone(phone) {
        phone += '';
        return phone.replace(/(\d{3})\d*(\d{4})/g, '$1***$2')
    },
对后台传来的时间戳格式化,如果后台是10位的乘以1000即可
formateDate(time){
        if(!time)return '';
        let date = new Date(time);
        return date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate()+' '+date.getHours()+':'+date.getMinutes()+':'+date.getSeconds();
    }
两数组相比,留下不同的项

  unique(longArr, arr = []) {
    return longArr.filter(function(item) {
      return !arr.some(i => i == item);
    });
  }
  // 例如 
  let longArr = [5,6,7,8,9,10],arr=[5,6,7];
  unique(longArr,arr)   // [8,9,10]
  
  
几秒内点击几次触发某事
    var count = 0;
    $('#btn').click(fn);
    function fn() {
     	var timeStart = parseInt(new Date().getTime() / 1000);
    	count++;
    	console.log(count);
    if (count == 5 && (parseInt(new Date().getTime() / 1000) - timeStart) <= 2) {
    // TODO: 2秒内点击五次触发某事
    	console.log(count, timeStart);
    } else if (count > 5 || (new Date().getSeconds() - timeStart) > 2) {
   		console.log('事件不触发');
   		return false;
     }
    }
获取移动端网络状态
 getNetStatus() {
    const UA = navigator.userAgent;
    if (UA.indexOf('nettype/') > -1) {
      var netType = UA.match(/nettype\/[a-z0-9]*/g)[0].split('nettype/')[1];
      if (netType == 'wifi') {
        return 'wifi';
      } else if (netType == '4g' || netType == 'lte' || netType == '3g+' || netType == 'ctlte') {
        return '4g';
      } else if (netType == '3g' || netType == 'nonwifi' || netType == '3gwap' || netType == '3gnet') {
        return '3g';
      } else if (netType == '2g' || netType == 'uninet' || netType == 'uniwap' || netType == 'cmwap' || netType == 'cmnet' || netType == 'ctwap' || netType == 'ctnet') {
        return '2g';
      }
    }
    return 'unknown';
  }
将一组数字字符串 分割为 4位一组
/**
 * 将一组16位数字字符串 分割为 4位一组
 * groupBy4
 *
 * [return 四位数字为一个成员的数组
 *
 */
export const groupBy4= (str = "") => str.match(/(\d{1,4})/g);

将类似于 “2020-01-01 00:00:00” 格式的字符串转为 20200101000000
/**
 * 将类似于 "2020-01-01 00:00:00" 格式的字符串转为 20200101000000
 * councatDataformat
 *
 * [ return ]  年月日时分秒  YYYYMMDDhhmmss
 *
 */
export const councatDataformat = str => {
  return str.replace(/\-|\:|\s/g, "");
};
获得两时间戳相减的天数
/**
 * 获得两时间戳相减的天数
 * getDays
 *
 * date2-endtime   date1-starttime
 * [ return ]  days
 *
 */
export const getDays = (date1: any = "", date2: any = "") => {
  let datetime: number = date2 - date1;
  let days = ((datetime / 1000) * 60 * 60 * 24) / (1000 * 60 * 60 * 24);
  return days;
};

获得当前时间的时间YYYYMMDDhhmmss格式
/**
 * 获得当前时间的时间YYYYMMDDhhmmss格式
 * getNowYYYYMMDDhhmmss
 *
 * [ return ]  NowYYYYMMDDhhmmss
 *
 */
export const getNowYYYYMMDDhhmmss = () => {
  let pad2 = n => {
    return n < 10 ? "0" + n : n;
  };
  let date = new Date();
  return (
    date.getFullYear().toString() +
    pad2(date.getMonth() + 1) +
    pad2(date.getDate()) +
    pad2(date.getHours()) +
    pad2(date.getMinutes()) +
    pad2(date.getSeconds())
  );
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值