工具函数

时间:2019-11-14
本文章向大家介绍工具函数,主要包括工具函数使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
// 连字符转驼峰
String.prototype.hyphenToHump = function () {
  return this.replace(/-(\w)/g, (...args) => {
    return args[1].toUpperCase()
  })
}

// 驼峰转连字符
String.prototype.humpToHyphen = function () {
  return this.replace(/([A-Z])/g, '-$1').toLowerCase()
}

// 日期格式化
Date.prototype.format = function (format) {
  const o = {
    'M+': this.getMonth() + 1,
    'd+': this.getDate(),
    'h+': this.getHours(),
    'H+': this.getHours(),
    'm+': this.getMinutes(),
    's+': this.getSeconds(),
    'q+': Math.floor((this.getMonth() + 3) / 3),
    S: this.getMilliseconds(),
  }
  if (/(y+)/.test(format)) {
    format = format.replace(RegExp.$1, `${this.getFullYear()}`.substr(4 - RegExp.$1.length))
  }
  for (let k in o) {
    if (new RegExp(`(${k})`).test(format)) {
      format = format.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : (`00${o[k]}`).substr(`${o[k]}`.length))
    }
  }
  return format
}

/**
 *获取前天、昨天、今天、明天、后天的时间
 *0:今天,以此类推昨天和明天、后天
 */
function GetDateStr(AddDayCount) {
  // var dd = new Date();
  // dd.setDate(dd.getDate() + AddDayCount);//获取AddDayCount天后的日期
  // var y = dd.getFullYear();
  // var m = dd.getMonth() + 1;//获取当前月份的日期
  // var d = dd.getDate();
  // console.log(y + "-" + m + "-" + d,'y + "-" + m + "-" + d')
  // return y + "-" + m + "-" + d;
  return moment().add(AddDayCount, 'day').format('YYYY-MM-DD');
}


/**
 *获取前天、昨天、今天、明天、后天的时间
 *0:今天,以此类推昨天和明天、后天
 */
function GetDateStr2(AddDayCount) {
  var dd = new Date();
  dd.setDate(dd.getDate() + AddDayCount);//获取AddDayCount天后的日期
  var y = dd.getFullYear();
  var m = dd.getMonth() + 1;//获取当前月份的日期
  var d = dd.getDate();
  return y + "-" + m + "-" + d;
  // return moment().add(AddDayCount, 'day').format('YYYY-MM-DD');
}

//获取两个时间节点间的日期
function getDateSection(startTime, endTime) {
  let list = []
  for (let i = Date.parse(startTime); i <= Date.parse(endTime); i += 86400000) {
    list.push(moment(i).format('YYYYMMDD'))
  }
  return list
}


// 时间处理  秒数转化为天、时、分、秒
function timeDeal(time) {
  let day,hours,min,second;
  day = Math.floor(time / 86400);
  hours = Math.floor((time - day * 86400) / 60 / 60);
  min = Math.floor((time - day * 86400 - hours * 60 * 60) / 60);
  second = Math.floor(time % 60);
  hours = hours < 10 ? '0' + hours : hours;
  min = min < 10 ? '0' + min : min;
  second = second < 10 ? '0' + second : second;
  if(day > 0) {
    return `${day}天 ${hours}:${min}:${second}`
  }
  return `${hours}:${min}:${second}`
}

// 转义  防止js注入攻击
let htmlEncodeJQ = (str) => {
  return $('<span/>').text(str).html();
}

// 休眠 延迟
let sleep = (s) => {
  s = s || 0;
  s = parseInt(s) * 1000;
  let now = +new Date();
  let timer = null;
  return new Promise((resolve, reject) => {
    timer = setInterval(() => {
      if (now + s < +new Date()) {
        clearInterval(timer);
        resolve(true);
      }
    }, 10)
  })
}

// 获取url字段
let GetQueryString = (name) => {
  var reg = new RegExp("(^|/?/?)"+ name +"=([^/?/?]*)(/?/?|$)");
  var r = window.location.search.substr(1).match(reg);
  if(r!=null)return  decodeURI(r[2]); return null; 
}

 // 千位分割
const thousandBitSeparator = (num) => {
 return (num || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
}

原文地址:https://www.cnblogs.com/kewenxin/p/11857926.html