filters过滤器常用函数

作者: bkbtp 分类: 前端 发布时间: 2018-06-07 12:46

时间戳转日期格式(包含时分秒)

export function timestampToTime(timestamp) {
  if (timestamp) {
    var date = new Date(timestamp * 1000) // 时间戳为10位需*1000,时间戳为13位的话不需乘1000
    var Y = date.getFullYear() + '-'
    var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
    var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '
    var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
    var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'
    var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
    return Y + M + D + h + m + s
  } else {
    return ''
  }
}

短横线转驼峰(正则方法)

export function getCamelCase(str) {
  return str.replace(/-([a-z])/g, function (all, i) {
    return i.toUpperCase()
  })
}

短横线转驼峰(数组方法)

export function getCamelCase2(str) {
  let array = str.split('-')
  let result = ''
  array.forEach((item, index) => {
    if (index === 0) {
      result += item
    } else {
      result += item.charAt(0).toUpperCase() + item.slice(1)
    }
  })
  return result
}

驼峰转短横线(正则方法)

export function getKebabCase(str) {
  return str.replace(/[A-Z]/g, function (i) {
    return '-' + i.toLowerCase()
  })
}

驼峰转短横线(数组方法)

export function getKebabCase2(str) {
  let array = str.split('')
  let result = ''
  array.forEach(item => {
    if (item.toUpperCase() === item) {
      result += '-' + item.toLowerCase()
    } else {
      result += item
    }
  })
  return result
}

星号替换手机中间四位

export function xMobile(mobile) {
  if (mobile) {
    return mobile.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')
  } else {
    return ''
  }
}

数字千分位显示

export function getThousandNum(num) {
  if (num) {
    return num.toString().replace(/\d+/, function (n) {
      // 先提取整数部分
      return n.replace(/(\d)(?=(\d{3})+$)/g, function ($1) {
        // 对整数部分添加分隔符
        return $1 + ','
      })
    })
  } else {
    return num
  }
}

数字金额转换成大写

export function formatChineseNum(value) {
  if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(value)) {
    return
  }
  var unit = '千百拾亿千百拾万千百拾元角分'
  var str = ''
  value += '00'
  var p = value.indexOf('.')
  if (p >= 0) {
    value = value.substring(0, p) + value.substr(p + 1, 2)
  }
  unit = unit.substr(unit.length - value.length)
  for (var i = 0; i < value.length; i++) {
    str += '零壹贰叁肆伍陆柒捌玖'.charAt(value.charAt(i)) + unit.charAt(i)
  }
  return str.replace(/零(千|百|拾|角)/g, '零').replace(/(零)+/g, '零').replace(/零(万|亿|元)/g, '$1').replace(/(亿)万|壹(拾)/g, '$1$2').replace(/^元零?|零分/g, '').replace(/元$/g, '元整')
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。