vue身份证号、手机号、姓名脱敏处理

2021-12-08  本文已影响0人  小小鱼yyds
姓名脱敏:

2位到5位以上的不同处理:

filters: {
    hideInsurantName (val) {
      if (!val || val === '') return ''
      let name = ''
      if (val.length === 2) {
        name = val.substring(0, 1) + '*' // 截取name 字符串截取第一个字符,
      } else if (val.length === 3) {
        name = val.substring(0, 1) + '*' + val.substring(2, 3) // 截取第一个和第三个字符
      } else if (val.length === 4) {
        name = val.substring(0, 2) + '*' + '*' // 4个字隐藏后面两个
      } else if (val.length > 4) {
        name = val.substring(0, 1) // 5个字只显示第一个字
        for (let i = 0; i < val.length - 1; i++) {
          name = name + '*'
        }
      }
      return name
    }
  },

使用方式:

<p class="orange txt-20 bold">{{name | hideInsurantName}}</p>
手机号脱敏:
judgePhone (val) {
      if (!val) return ''
      let reg = /^(.{3}).*(.{4})$/
      return val.replace(reg, '$1****$2')
    }
数字以千分位的形式展示:
num: (value) => {
      if (!value) return '0.00'
      // 将数值截取,保留两位小数
      value = value.toFixed(2)
      // 获取整数部分
      const intPart = Math.trunc(value)
      // 整数部分处理,增加,
      const intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,')
      // 预定义小数部分
      let floatPart = '.00'
      // 将数值截取为小数部分和整数部分
      const valueArray = value.toString().split('.')
      if (valueArray.length === 2) { // 有小数部分
        floatPart = valueArray[1].toString() // 取得小数部分
        // console.log('如果有小数,返回---', intPartFormat + '.' + floatPart)
        return intPartFormat
      }
      // console.log('如果有小数,返回111---', intPartFormat + '.' + floatPart)
      return intPartFormat
    },
身份证号脱敏:
judgeCard (val) {
      if (!val) return ''
      let reg = /^(.{3}).*(.{2})$/
      return val.replace(reg, '$1*************$2')
    },
上一篇下一篇

猜你喜欢

热点阅读