当前位置:首页 > 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 的表单验证库(如 VeeValidate)或自定义验证规则,确保用户输入的账号和密码符合要求。例如,检查邮箱格式、密码长度等。 发送登录…

vue 实现

vue 实现

Vue 实现的基本步骤 安装 Vue.js 可以通过 npm 或 CDN 引入。使用 npm 安装适合大型项目,CDN 适合快速原型开发。 npm install vue 在 HTML 文件中引入…

vue实现视窗

vue实现视窗

Vue 实现视窗功能 在 Vue 中实现视窗功能通常涉及监听浏览器窗口大小变化、响应式布局或创建自定义弹窗组件。以下是几种常见实现方式: 监听浏览器窗口大小变化 使用 Vue 的 mounted 和…

代码实现vue

代码实现vue

创建Vue项目 使用Vue CLI快速初始化项目,确保已安装Node.js和npm/yarn: npm install -g @vue/cli vue create my-vue-project c…

vue实现tablegrid

vue实现tablegrid

Vue 实现 TableGrid 的方法 使用 Element UI 的 Table 组件 Element UI 提供了强大的 Table 组件,可以快速实现表格布局。安装 Element UI 后,…

vue实现动态

vue实现动态

Vue 实现动态路由的方法 在 Vue 中实现动态路由通常涉及以下几个关键步骤: 使用 Vue Router 的动态路由匹配 通过 Vue Router 的 :param 语法可以实现动态路由匹配。…