Vue3实现表格搜索内容高亮

embedded/2025/1/18 12:37:21/

采用html拼接

v-html 指令用来将给定的 HTML 字符串直接渲染到页面上

javascript"><template><div><!-- 搜索框 --><input v-model="searchText" placeholder="搜索内容" /><!-- 表格 --><el-table :data="tableData" style="width: 100%" @row-click="handleRowClick"><el-table-column label="Content" prop="content"><template #default="{ row }"><!-- 使用 v-html 渲染含有高亮部分的 HTML --><span v-html="getHighlightedContent(row.content)"></span></template></el-table-column></el-table></div>
</template><script lang="ts" setup>import { ref } from 'vue';// 响应式数据const searchText = ref('');const tableData = ref([{ id: 1, content: '创建人:李四<br>创建时间:2025-01-11 10:24:00<br>' },{ id: 2, content: '创建人:张三<br>创建时间:2025-01-12 11:25:00<br>' },]);// 根据搜索文本匹配并返回高亮内容function getHighlightedContent(content: string) {if (!searchText.value) {return content; // 如果没有输入搜索文本,直接返回原内容}const regex = new RegExp(`(${escapeRegExp(searchText.value)})`, 'gi');let highlightedContent = content.replace(regex, '<span style="color: rgb(109,172,246); font-weight: bold;">\$1</span>');return highlightedContent;}// 用来转义搜索文本中的特殊字符,避免正则错误function escapeRegExp(string: string) {return string.replace(/[.*+?^=!:${}()|\[\]\/\\]/g, '\\$&');}
</script><style scoped>/* 你可以根据需要添加其他样式 */
</style>
(1)getHighlightedContent 函数
javascript">function getHighlightedContent(content: string) {if (!searchText.value) {return content; // 如果没有输入搜索文本,直接返回原内容}const regex = new RegExp(`(${escapeRegExp(searchText.value)})`, 'gi');let highlightedContent = content.replace(regex, '<span style="color: rgb(109,172,246); font-weight: bold;">\\$1</span>');return highlightedContent;
}
  • 这个函数接收一个字符串 content,并根据 searchText 中的文本进行高亮显示。
  • 步骤
    • 如果 searchText 为空,直接返回原内容。
    • 创建一个正则表达式,用于匹配 searchText 中的所有文本(不区分大小写)。
    • 使用 content.replace() 方法,找到所有匹配的文本并用 <span> 标签包裹,同时设置样式(字体加粗,颜色改变)。
    • 返回高亮后的 HTML 字符串。
(2)escapeRegExp 函数
javascript">function getHighlightedContent(content: string) {if (!searchText.value) {return content; // 如果没有输入搜索文本,直接返回原内容}const regex = new RegExp(`(${escapeRegExp(searchText.value)})`, 'gi');let highlightedContent = content.replace(regex, '<span style="color: rgb(109,172,246); font-weight: bold;">\\$1</span>');return highlightedContent;
}
  • 这个函数用于转义 searchText 中的特殊字符,避免它们在构建正则表达式时引起错误。
  • 正则表达式中的一些字符(如 .*? 等)具有特殊含义,因此需要通过 escapeRegExp 函数将它们转义,以确保它们能被正确地作为普通字符匹配。

http://www.ppmy.cn/embedded/154943.html

相关文章

Mongodb相关内容

Mongodb相关内容 1、Windows平台安装2、Linux平台安装3、基本常用命令文档更新删除文档分页查询索引 pymongo操作 客户端下载&#xff1a;https://download.csdn.net/download/guoqingru0311/90273435 1、Windows平台安装 方式一&#xff1a; 方式2&#xff1a; 方式3&#…

鸿蒙操作系统的安全架构

在当今数字化时代&#xff0c;数据安全与隐私保护成为人们日益关注的焦点。随着智能设备的普及和互联网技术的发展&#xff0c;个人数据泄露的风险也在不断增加。作为中国自主研发的操作系统&#xff0c;鸿蒙&#xff08;HarmonyOS&#xff09;从设计之初就将数据安全与隐私保护…

我的常用vim操作

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 我的常用vi操作 1. 文件打开与保存 打开文件操作&#xff1a;vi xxx.h 查看文件&#xff0c;不修改&#xff0c;&#xff1a;view xxx.h 写入并保存&#xff1a;:wq 或 :x 有修改强制退出&#xff0c;不保存&#x…

Windows CMD 常用命令

文章目录 1. 前言2. 如何进入 CMD3. 常用文件与目录操作命令3.1 切换盘符3.2 cd 改变目录3.3 dir 查看目录内容3.4 创建、删除目录3.5 创建、删除文件 4. 文件与内容操作4.1 复制、移动文件4.2 批量复制 — xcopy / robocopy 5. 网络相关命令5.1 ipconfig 查看本机 IP5.2 测试网…

初识NLP

# one-hot 编码 缺点&#xff1a; # 词越多 向量越多 且向量中只有为1起到了训练的作用 # 传统NLP特征工程的缺点 &#xff08;使用one-hot&#xff09; # 词典有多长向量就多长 维度高 # 太稀疏 没有起到训练作用的0太多 # 语义鸿沟 # 3. 深度学习中NLP的特征输入 # 深度…

农业农村大数据应用场景|珈和科技“数字乡村一张图”解决方案

近年来&#xff0c;珈和科技持续深耕农业领域&#xff0c;聚焦时空数据服务智慧农业。 珈和利用遥感大数据、云计算、移动互联网、物联网、人工智能等先进技术&#xff0c;搭建“天空地一体化”监测体系&#xff0c;并创新建设了150的全球领先算法模型&#xff0c;广泛应用于高…

AWS Lambda

AWS Lambda 是 Amazon Web Services&#xff08;AWS&#xff09;提供的无服务器计算服务&#xff0c;它让开发者能够运行代码而不需要管理服务器或基础设施。AWS Lambda 会自动处理代码的执行、扩展和计费&#xff0c;开发者只需关注编写和部署代码&#xff0c;而无需担心底层硬…

[c语言日寄](bit)位检查——初探字节之下

哈喽大家好啊&#xff0c;在今天的快乐刷题中&#xff0c;我遇到了一个很有意思的题目&#xff1a; 题目 统计二进制中1的个数 基本思路 没错……这道题的对象比较特殊。 不同于过去常见的题目&#xff0c;之前的题目的对象都是基本数据类型&#xff0c;而这道题的对象却是…