js 通用 保留两位小数 金额千分位格式化 日期比较 cookie获取 去空格 日期格式化 日期加减 数组去重复 数组排序 scroll使用

这是一个系列,记录我前端开发常用的代码,小常识,有些是参考网上代码,(讲的可能有点烂,求不要打脸,嘤嘤嘤~~)送给那些需要的人。可以相互交流,喜欢的加我吧。
Wx: Lxp911221

ios 日期
ios日期比较

具体到天
可以 ('2017-02-01' > '2017-02-02')
可以 (new Date('2017-02-01') > new Date('2017-02-02'))
具体到时分秒
(new Date('2015-02-03 11:22:22') > new Date('2015-02-03 11:22:23')) // ios不能比较时间
需要
转化成时间戳
let t = '2015-02-03 11:22:22'.split(/[- :]/)
let day = new Date(t[0], t[1] - 1, t[2], t[3], t[4], t[5])
(day.getTime() - new Date().getTime())
或者 时间格式变成一下样子
(new Date('2015/02/03 11:22:22') > new Date('2015/02/03 11:22:23'))

ios scroll

页面实现 滑动指定位置,部分内容浮动

// body 上加上以下css,能让页面滑动的更顺滑
-webkit-overflow-scrolling: touch;
// 监听scroll事件,滑到一定位置,让内容浮动显现
 window.addEventListener('scroll', () => {
      let scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop
      // console.log(scrollTop)
      if (scrollTop > this.bgHeight) {
        this.fixedTab = true
      } else {
        this.fixedTab = false
      }
    })

这个方法可以用,有个小问题,ios系统不是实时监听scroll事件,只有滑动结束才能触发监听事件
网上有touchmove 事件同时监听,但是不生效

数组去重

// 原理 Set的唯一键值
let set = new Set(['ww','dd','cc']) // 去重复

数组排序

this.days = Array.from(set).sort() // 排序

vue 数组变化,不能自动渲染问题

// vue  data中一个数组,如果这个数组中途中加入新项,或者数组子元素中添加新项,数组不会不会实时的在页面渲染出来
// ['a', b]  -> ['a', b, c] 
// [{a:'aa'}]  -> [{a:'aa',b:'bb'}]
这种情况只能讲数组全部赋值
this.data = ['a', b, c] 
如果遍历修改,请用
 this.allInfoList = this.allInfoList.map((item) => { return item})

代码常用方法

// 金额格式化 1000  格式化 1,000
function getFData1000 (source, length = 3) {
  source = String(source).split('.')
  source[0] = source[0].replace(new RegExp('(\\d)(?=(\\d{' + length + '})+$)', 'ig'), '$1,')
  return source.join('.')
}
// 金额格式化保留2位小数 2 -> 2.00  2.1 -> 2.10
function getFDataFixed (source, length = 2) {
  return (+String(source)).toFixed(length) // +String(source) 字符转数字
}
// 获取Cookie
function getCookies (cname) {
  var cstart = document.cookie.indexOf(cname + '=')
  if (cstart !== -1) {
    cstart = cstart + cname.length + 1
    var cend = document.cookie.indexOf(';', cstart)
    if (cend === -1) {
      cend = document.cookie.length
    }
    var name = document.cookie.substring(cstart, cend)
    return name
  }
  return ''
}
// 去空格
function dcsTrim (s) {
  var str = String(s)
  return str.replace(/(^\\s*)|(\\s*$)|(\\#$)/g, '')
}

前端时间格式化,时间减去对应天数

daTeFormat (fmt = 'yyyy-MM-dd', valdate = new Date(), xday = 0) {
        let nd = new Date(new Date(valdate) - 24 * 60 * 60 * 1000 * xday)
        var o = {
          'M+': nd.getMonth() + 1, // 月份
          'd+': nd.getDate(), // 日
          'h+': nd.getHours(), // 小时
          'm+': nd.getMinutes(), // 分
          's+': nd.getSeconds(), // 秒
          'q+': Math.floor((nd.getMonth() + 3) / 3), // 季度
          'S': nd.getMilliseconds() // 毫秒
        }
        if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (nd.getFullYear() + '').substr(4 - RegExp.$1.length))
        for (var k in o) {
          if (new RegExp('(' + k + ')').test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
          }
        }
        return fmt
      },

猜你喜欢

转载自blog.csdn.net/zzk220106/article/details/81129540