vue实现过滤并且替换敏感词,将长字符串转化成...的形式,将秒转化成XX:XX的形式

29 篇文章 0 订阅

使用vue的全局过滤敏感词

// 铭感词过滤
export const judgeBadWord = (str) => {
  const badWord = JSON.parse(sessionStorage.getItem('list'))
  const newArr = []
  badWord.forEach(item => {
    newArr.push(
      {
        sensitiveWord: item.sensitiveWord,
        replaceWord: item.replaceWord
      }
    )
  })
  // trim() 方法不会改变原始字符串 去掉首尾空白符
  let contents = ''
  contents = str.trim()
  newArr.forEach(function (item, index, array) {
    if (contents.indexOf(item.sensitiveWord) != -1) {
      const reg = new RegExp(item.sensitiveWord, 'gi')
      contents = contents.replace(reg, item.replaceWord)
    }
  })
  return contents
}

badWord:是后台返回的敏感词字段,和敏感词需要替换成为什么

在这里插入图片描述

注册全局过滤器

在mian.js中注册全局过滤器

import * as filters from './filters'
// 注册全局的过滤器
for (const key of Object.keys(filters)) {
  Vue.filter(key, filters[key])
}

在需要的页面中使用

{{ scope.row.menuName|judgeBadWord() }}

不需要引入

附其他的过滤器

/**
 * 将长字符串转化成...的形式
 * @param {Number} max 最多显示的字符串
 */
export const strOverflow = (value, max) => {
  if (!value) return ''
  const valueStr = value.toString()
  if (valueStr.length <= max) return valueStr
  return valueStr.substring(0, max) + '...'
}
/**
 * 将秒转化成XX:XX的形式
 */
export const formatSec = (value) => {
  const val = parseInt(value, 0)
  if (!val) return '00:00'
  let minute = parseInt(val / 60, 0)
  let second = val - minute * 60
  minute = minute < 10 ? `0${minute}` : minute
  second = second < 10 ? `0${second}` : second
  return `${minute}:${second}`
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值