当前位置:首页 > VUE

vue实现姓名脱敏

2026-03-30 09:01:12VUE

Vue 实现姓名脱敏的方法

在 Vue 中实现姓名脱敏通常需要处理字符串的显示逻辑,以下是几种常见的方法:

vue实现姓名脱敏

方法一:使用计算属性脱敏

<template>
  <div>{{ maskedName }}</div>
</template>

<script>
export default {
  data() {
    return {
      name: '张三丰'
    }
  },
  computed: {
    maskedName() {
      if (this.name.length <= 1) return '*';
      return this.name.charAt(0) + '*'.repeat(this.name.length - 1);
    }
  }
}
</script>

方法二:自定义过滤器脱敏

<template>
  <div>{{ name | maskName }}</div>
</template>

<script>
export default {
  data() {
    return {
      name: '李四'
    }
  },
  filters: {
    maskName(value) {
      if (!value) return '';
      return value.substring(0, 1) + '*'.repeat(value.length > 1 ? value.length - 1 : 1);
    }
  }
}
</script>

方法三:使用指令实现脱敏

<template>
  <div v-mask-name="name"></div>
</template>

<script>
export default {
  data() {
    return {
      name: '王五'
    }
  },
  directives: {
    'mask-name': {
      inserted(el, binding) {
        const name = binding.value;
        el.textContent = name.charAt(0) + '*'.repeat(name.length - 1);
      }
    }
  }
}
</script>

方法四:使用工具函数

// utils/mask.js
export function maskName(name) {
  if (!name) return '';
  return name[0] + '*'.repeat(Math.max(0, name.length - 1));
}

// 在组件中使用
<template>
  <div>{{ maskedName }}</div>
</template>

<script>
import { maskName } from '@/utils/mask';

export default {
  data() {
    return {
      name: '赵六'
    }
  },
  computed: {
    maskedName() {
      return maskName(this.name);
    }
  }
}
</script>

注意事项

  1. 对于单字姓名,通常显示为单个字符加星号(如"张*")
  2. 考虑国际化场景,某些语言的姓名顺序可能需要特殊处理
  3. 空值或非法输入需要做防御性处理
  4. 移动端显示可能需要考虑不同屏幕尺寸下的显示效果

以上方法可以根据实际项目需求选择使用,计算属性方式最为常用且简单,工具函数方式更适合多组件复用场景。

标签: 姓名vue
分享给朋友:

相关文章

vue路由实现

vue路由实现

Vue 路由实现 Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。以下是 Vue Router 的基本实现步骤和核心功能。 安装 Vue Router 通过…

vue实现portal

vue实现portal

Vue 实现 Portal 功能 Portal 是一种将子节点渲染到父组件 DOM 层级之外的 DOM 节点的技术,常用于实现模态框、弹出层等需要脱离当前组件层级的场景。Vue 可以通过多种方式实现…

vue实现datalist

vue实现datalist

使用 Vue 实现 HTML5 的 datalist 功能 HTML5 的 <datalist> 元素提供了一种自动完成输入框的功能,允许用户在输入时从预定义的选项列表中选择。以下是几种在…

自实现vue

自实现vue

实现 Vue 的核心功能 要实现一个简化版的 Vue,需要理解其核心功能:数据响应式、模板编译、虚拟 DOM 和组件系统。以下是关键步骤的分解: 数据响应式 Vue 使用 Object.define…

vue 实现hover

vue 实现hover

Vue 实现 Hover 效果的方法 在 Vue 中实现 hover 效果可以通过多种方式完成,以下是几种常见的方法: 使用 CSS 伪类 :hover 最简单的方式是直接使用 CSS 的 :hov…

vue弹幕实现

vue弹幕实现

Vue弹幕实现方法 弹幕功能常见于视频直播或评论区,以下是基于Vue的实现方案,涵盖基础弹幕、动画控制及性能优化。 基础弹幕渲染 通过v-for动态渲染弹幕列表,结合CSS实现横向移动效果。弹幕数据…