如何基于vue3 封装敏感词过滤自定义指令(输入框输入时 自动将敏感词转成**)

如何基于vue3 封装敏感词过滤自定义指令

实现功能:el-input输入框输入时 自动将敏感词转成**

  • 1.在src下创建directive文件=>filterSensitiveWords.ts
import type { App } from 'vue'
const sensitiveWords = ['敏感词1', '敏感词2', '敏感词3']
export function filterSensitiveWords(app: App) {app.directive('filter', {//在绑定元素的父组件被挂载后调用mounted(el, binding) {let timeout: anyel.addEventListener('input', function (event: any) {clearTimeout(timeout)timeout = setTimeout(async () => {const input = event.target.valueif (!input) {return}const filteredInput = await filterFn(input)event.target.value = filteredInputel.dispatchEvent(new Event('input'))}, 300)})},//卸载unmounted(el) {console.log('自定义指令卸载', el)el.addEventListener('input', () => {})},})
}//过滤方法
function filterFn(input: string): string {let filteredInput = inputfor (let i = 0; i < sensitiveWords.length; i++) {const sensitiveWord = sensitiveWords[i]const regex = new RegExp(sensitiveWord, 'gi')filteredInput = filteredInput.replace(regex,'*'.repeat(sensitiveWord.length))}return filteredInput
}
  • 2.main.ts挂载指令
//引入自定义指令
import { directive } from '@/directive/index'const app = createApp(App)
directive(app) //挂载指令
  • 3.使用自定义指令
 <el-input v-filter v-model="iptValue"></el-input>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/152120.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c#Nettonsoft.net库常用的方法json序列化反序列化

Newtonsoft.Json 是一个流行的 JSON 操作库&#xff0c;用于在 .NET 应用程序中序列化、反序列化和操作 JSON 数据。下面是 Newtonsoft.Json 常用的一些方法&#xff1a; 序列化对象为 JSON 字符串&#xff1a; string json JsonConvert.SerializeObject(obj);var obj new {…

FastJson竟然会导致内存泄露?你遇到过吗?

FastJson是一款性能优异的java序列化和反序列框架&#xff0c;广泛应用于日常开发工作中&#xff0c;也许正是因为作者在设计这款框架时&#xff0c;比较注重性能方面的考量&#xff0c;在框架安全性&#xff0c;空间占用等方面做了一些牺牲。 很不幸小编前两天就遇到了一个使…

Windows 下 Sublime Text 3.2.2 下载及配置

1 下载地址&#xff1a; https://www.sublimetext.com/3 Sublime Text 3.2.2 (此版本选择了 portable version)&#xff0c;直接解压就可以使用。 https://download.sublimetext.com/Sublime Text Build 3211.zip 2 相关配置 2.1 取消自动更新(修改完&#xff0c;需要注册码…

企业OA办公系统的设计与实现【附源码】

企业办公自动化系统设计与实现 毕业论文 摘 要 办公自动化&#xff08;Office Automation,简称OA&#xff09;是将现代化办公和计算机网络功能结合起来 的一种新型的办公方式。企业办公自动化系统在此基础上实现企业的快速运转和交流&#xff0c;进而 有效提高企业办公效率。 本…

Decoder-Only、Encoder-Only和Encoder-Decoder架构的模型区别、优缺点以及使用其架构的模型示例

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

vue el-table字段点击出现el-input输入框,失焦保存

一、效果展示 当没有数据初始化展示如下&#xff1a; 有数据展示数据&#xff0c;点击出现输入框&#xff0c; 失焦保存修改 二、代码实现 <!-- cell-click"cellClick" 当前单击的单元格 --> <el-tableref"table"size"mini"height&qu…

为什么阿里推荐 LongAdder ,不推荐 AtomicLong ??

1.什么是LongAdder LongAdder是JDK1.8由Doug Lea大神新增的原子操作类&#xff0c;位于java.util.concurrent.atomic包下&#xff0c;LongAdder在高并发的场景下会比AtomicLong 具有更好的性能&#xff0c;代价是消耗更多的内存空间。

python+Django 使用apscheduler实现定时任务 管理调度

apscheduler实现定时任务 管理调度 在Django 项目中经常会用到定时任务去处理一些业务处理 使用 APScheduler 可以轻松地实现定时任务的管理和调度。你可以通过以下步骤来创建、启动、停止和删除定时任务&#xff1a; 1.创建调度器对象&#xff1a; from apscheduler.schedu…

笔记57:双向循环神经网络

本地笔记地址&#xff1a;D:\work_file\DeepLearning_Learning\03_个人笔记\3.循环神经网络\第9章&#xff1a;动手学深度学习~现代循环神经网络 a a a a a a a a a a a a

sql server外键设置

SQL Server外键设置 简介 在关系型数据库中&#xff0c;外键是一种约束&#xff0c;用于确保数据的完整性和一致性。外键约束定义了一个表中的列与另一个表中的列之间的关系&#xff0c;它可以用来保证数据的一致性、防止数据的破坏和数据冗余。在SQL Server中&#xff0c;我们…

mysql面试题——存储引擎相关

一&#xff1a;MySQL 支持哪些存储引擎? MySQL支持多种存储引擎&#xff0c;比如InnoDB&#xff0c;MyISAM&#xff0c; MySQL大于等于5.5之后&#xff0c;默认存储引擎是InnoDB 二&#xff1a;InnoDB 和 MyISAM 有什么区别? InnoDB支持事务&#xff0c;MyISAM不支持InnoD…

Bcrypt 加密算法

Bcrypt 加密算法研究与对比 Bcrypt解密工具下载&#xff08;暴力破解&#xff0c;需基于密码本&#xff09;

html综合笔记:设计实验室主页

&#xff11; 主页来源及效果 Overview - Lab Website Template docs (gitbook.io) greenelab/lab-website-template: An easy-to-use, flexible website template for labs (github.com) 2 创建网页 3 主要的一些file 3.1 index.md 主页面 3.1.1 intro 3.1.2 highlight …

springBoot 配置druid多数据源 MySQL+SQLSERVER

1:pom 文件引入数据 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.0</version> </dependency>…

Unity使用Visual Studio Code 调试

Unity 使用Visual Studio Code 调试C# PackageManager安装Visual Studio EditorVisual Studio Code安装Unity 插件修改Unity配置调试 PackageManager安装Visual Studio Editor 打开 Window->PackageManger卸载 Visual Studio Code Editor &#xff0c;这个已经被官方废弃安…

【C++ STL】string类-----迭代器(什么是迭代器?迭代器分哪几类?迭代器的接口如何使用?)

目录 一、前言 二、什么是迭代器 三、迭代器的分类与接口 &#x1f4a6;迭代器的分类 &#x1f4a6;迭代器的接口 &#x1f4a6;迭代器与接口之间的关联 四、string类中迭代器的应用 &#x1f4a6; 定义string类----迭代器 &#x1f4a6;string类中迭代器进行遍历 ✨be…

【课程文章】微信小程序学习指南

本文章是配合【微信小程序】视频教程的指南目录文章 准备软件&#xff1a;这些软件可以在&#xff08;点击这里&#xff09;【微课百家】下载。 1.MySQL数据&#xff1b; 2.Navicat工具&#xff1b; 3.TodoDemo或者TeachDemo&#xff0c;配合小程序使用的后端对接平台源代码…

数据结构【DS】数组

在应用题中&#xff0c;“数组”常结合“矩阵压缩存储”考察&#xff0c;此类题目需要注意以下条件&#xff1a; ✧ 行优先存储 or 列优先存储&#xff1f; ✧ 矩阵下标从 1 or 0 开始&#xff1f;——若题目未特别说明&#xff0c;矩阵下标默认从1开始 ✧ 数组下标从 0 or 1 开…

【Spring Boot】如何集成Redis

在pom.xml文件中导入spring data redis的maven坐标。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 在application.yml文件中加入redis相关配置。 spr…

Python---数据序列类型之间的相互转换---list()方法:转化为列表。tuple() 方法转化为元组。set()方法:转换成集合。

list()方法&#xff1a;把某个序列类型的数据转化为列表 ------列表本身英文就是list 序列 &#xff1a;包括 字符串、列表、元组、集合以及字典。 # 1、定义 元组类型 的序列 tuple1 (10, 20, 30) print(list(tuple1))# 2、定义一个 集合类型的序列 set1 {a, b, c, d}…