vue各种过滤

// 时间过滤

formatTime = function (now, timestamp) {

var date = new Date(timestamp)
if (date.getFullYear() === now.getFullYear()) {
    if (date.getMonth() === now.getMonth()) {
        if (date.getDate() === now.getDate()) {
            return timestamp.getHours() + ':' + timestamp.getMinutes()
        } else {
            return timestamp.getDate() +' '+ timestamp.getHours() + ':' + timestamp.getMinutes()
        }
    } else {
        return timestamp.getMonth() + 1 + '-' + timestamp.getDate()
    }
} else {
    return timestamp.getFullYear() + '-' + (timestamp.getMonth() + 1) + '-' + timestamp.getDate()
}

}

formatFullTime = function (timestamp) {
    var timeObj = new Date(timestamp)
    return timeObj.getFullYear() + '-' + (timeObj.getMonth() + 1) + timeObj.getDate()
}

 

//过滤掉标签

filText(str){

                str = str.replace(/<script[^>]*?>[\s\S]*?<\/script>/ig, ''); //去掉<script>;

                str = str.replace(/<style[^>]*?>[\s\S]*?<\/style>/ig, ''); //去掉<style>;

                str = str.replace(/<\/?[^>]*>/g, ''); //去除HTML tag

                str = str.replace(/[ | ]*\n/g, '\n'); //去除行尾空白

                str = str.replace(/\n[\s| | ]*\r/g, '\n'); //去除多余空行

                str = str.replace(/(^\s*)|(\s*$)/g, ""); //去掉空格

                str = str.replace(/&nbsp;/ig, ''); //去掉&nbsp;

                if(str.length>60) return `${str.subString(0,60)}...`

                return str;

            },

//数字千分位过滤

 

numFormat: function(value) {

          if(!value) return '0';

          var intPart = Number(value).toFixed(0); //获取整数部分

          var intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,'); //将整数部分逢三一断

          //var floatPart = ".00"; //预定义小数部分

          var value2Array = value.split(".");

          //=2表示数据有小数位

          if(value2Array.length == 2) {

            floatPart = value2Array[1].toString(); //拿到小数部分

            if(floatPart.length == 1) { //补0,实际上用不着

              return intPartFormat + "." + floatPart + '0';

            } else {

              return intPartFormat + "." + floatPart;

            }

          } else {

            return intPartFormat;

          }

        }

 

如果项目中大量使用到某些类型的过滤器可以定义全局过滤器:

filter.js 

const vFilter={

numFilter:function (value) {

// 截取当前数据到小数点后两位

let realVal = Number(value).toFixed(2)

return realVal

}

}

export default vFilter

main.js:

import vFilter from '@/assets/js/filter'

//引入对象

for(let key in vFilter) {

Vue.filter(key, vFilter[key])

}

//全局注册过滤器,要在new Vue()之前

使用方法:

 <p>{{numa | numFilter}}</p>

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值