vue 实现实时搜索文档关键字并高亮显示

最近接到的一个新需求:实时搜索文档关键字并高亮显示,听起来好难的样子,仔细分析起来其实也蛮简单的。

实现思路

通过 input 实现关键字的输入,监听关键字的变化,用正则表达式来匹配关键字,然后给关键字添加样式实现高亮。

具体实现方法

这里我使用的是 vue2 + Element UI,其中 el-input 会自动监听输入值得变化。

<div class="audio-search"><el-inputplaceholder="请输入内容"prefix-icon="el-icon-search"v-model="searchQuery"@input="inputSearch"></el-input>
</div>
<!--这里是页面展示的文本-->
<div class="audio-text" v-html="newAudioText"></div>

js 部分

data() {return {newAudioText: "测试文本测试",audioText: "测试文本测试",searchQuery: '', }
},
methods: {// 当关键字变化时,处理高亮逻辑inputSearch(){if(this.searchQuery){this.highlightText(this.audioText, this.searchQuery);} else {this.newAudioText = this.audioText}},// 实现搜索文字高亮的方法highlightText(text, query) {if (!query) {return text;}// 正则是关键const escapedQuery = query.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');const regex = new RegExp(escapedQuery, 'ig');this.newAudioText = text.replace(regex, match => `<span style="color: #d6000f;font-weight:bold">${match}</span>`);},
}

如此便实现了搜索关键字并高亮显示。
如果项目中有多处用到这个功能的,也可以用自定义指令封装一下高亮的方法,此处我略去了,有需要的自行实现吧。
在这里插入图片描述

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

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

相关文章

Linux上的uname

2024年4月19日&#xff0c;周五上午 这是我第一篇用CSDN上的markdown编辑器写的博客&#xff0c;感觉还不错 uname 是一个常用的命令行工具&#xff0c;uname 的全称是 “Unix Name”&#xff0c;它是一个 Unix 和类 Unix 操作系统上的命令行工具&#xff0c;用于获取操作系统相…

【全网瞩目】你想知道的Llama3都在这里

Meta发布了开放式生成人工智能模型 Llama 系列的最新产品&#xff1a; Llama 3。或者更准确地说&#xff0c;该公司首次发布了其新的 Llama 3 系列中的两个模型&#xff0c;其余模型将在未来某个不确定的日期发布。 Meta 称&#xff0c;与上一代 Llama 型号 Llama 2 8B 和 Llam…

【支付宝】对接手机网站支付踩坑点记录

前言 简单记录一下对接Wap支付的问题&#xff0c;alipay和wxpay认证过程差不多&#xff0c;有个体商户或企业即可&#xff0c;前者文档不易懂后者还好&#xff0c;但是wxpay门槛高&#xff0c;个人认为pc网站支付(native支付)就是为了收300认证费&#xff01; 应用公私钥 第一…

React Router 5 vs 6:使用上的主要差异与升级指南

React Router 5 的一些API 在 React Router 6 上有时可能找不到&#xff0c;可能会看到如下画面&#xff1a;export ‘useHistory’ was not found in ‘react-router-dom’ … React Router目前有两个大的版本&#xff0c;即React Router 5、6。React Router 6 在设计上更加简…

【Anki】25考研408真题【2009-2023】

介绍 24年的真题解析还没有出&#xff01;只到23年&#xff01;一共有15套真题。 预览 客观题和主观题有两个目录。王道建议第一轮只写选择题&#xff0c;第二轮再开始写大题。 客观题&#xff1a; 主观题&#xff1a; 插件建议 See Previous Card Ratings in Reviewer 代码&am…

PM要会项目管理?完整版项目管理经验分享

近9个月&#xff0c;公司发生许多事情&#xff0c;包括产品研发部的人员结构调整。 原本以产品经理负责制的小组研发&#xff0c;变成了以项目经理负责制的项目组研发。 对于这一调整&#xff0c;我是支持的&#xff0c;毕竟产品在跟进项目时对技术的管控能力确实不如懂技术的…

彻底解决:IDEA java: 警告: 源发行版 17 需要目标发行版 17

一、出现的原因 JDK版本不匹配 二、解决方法 1.点击File -->Project Structure-->Project 修改这两处 2.在Project Structure-->Modules中的红框位置都要调整对应版本 3.点击File-->settings-->java compile将对应框的版本修改成对应版本即可 4.修改Pom文件中…

2010年认证杯SPSSPRO杯数学建模C题(第一阶段)高校图书馆的智能服务全过程文档及程序

2010年认证杯SPSSPRO杯数学建模 C题 高校图书馆的智能服务 原题再现&#xff1a; 图书馆源于保存记事的习惯。图书馆是为读者在馆内使用文献而提供的专门场所。而高校的图书馆为教学和科研服务&#xff0c;具有服务性和学术性强的特点。   现在的高校图书馆存在着许多不良的…

吴恩达llama课程笔记:第四课提示词技术

羊驼Llama是当前最流行的开源大模型&#xff0c;其卓越的性能和广泛的应用领域使其成为业界瞩目的焦点。作为一款由Meta AI发布的开放且高效的大型基础语言模型&#xff0c;Llama拥有7B、13B和70B&#xff08;700亿&#xff09;三种版本&#xff0c;满足不同场景和需求。 吴恩…

【oracle数据库安装篇二】Linux6.8基于ASM安装oracle11gR2单机

说明 本篇文章主要介绍了Linux6.8基于ASM安装oracle11gR2单机的配置过程&#xff0c;图文并茂&#xff0c;整个安装过程直观易懂&#xff0c;无论是对于初学者还是有一定经验的系统管理员&#xff0c;都能从中获得很大的帮助。 相比于上一篇【oracle数据库安装篇一】Linux5.6…

嵌入式面试-回答UART

说明&#xff1a; 此文章是在阅读了一些列面试相关资料之后对于一些常见问题的整理&#xff0c;主要针对的是嵌入式软件面试中涉及到的问答&#xff0c;努力精准的抓住重点进行描述。若有不足非常欢迎指出&#xff0c;感谢&#xff01;在总结过程中有些答案没标记参考来源&…

C++算法题 - 区间

目录 228. 汇总区间56. 合并区间57. 插入区间452. 用最少数量的箭引爆气球 228. 汇总区间 LeetCode_link 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所…

Maven通过flatten-maven-plugin插件实现多模块版本统一管理

正文 起因是公司开始推代码版本管理的相关制度&#xff0c;而开发过程中经常使用多模块构建项目&#xff0c;每次做版本管理时都需要对每个模块及子模块下的pom文件中parent.version和模块下依赖中的version进行修改&#xff0c;改的地方非常多&#xff0c;且非常容易漏。为此…

衣康酸(ITA)应用领域广泛 工业发酵法为其主流制备方法

衣康酸&#xff08;ITA&#xff09;应用领域广泛 工业发酵法为其主流制备方法 衣康酸&#xff08;ITA&#xff09;又称亚甲基丁二酸、甲叉琥珀酸&#xff0c;化学式为C5H6O4&#xff0c;是一种不饱和二元有机酸。衣康酸外观呈白色结晶粉末&#xff0c;含强烈刺激性气味&#xf…

【机器学习】小波变换在特征提取中的实践与应用

小波变换在特征提取中的实践与应用 一、小波变换的基本原理与数学表达二、基于小波变换的特征提取方法与实例三、小波变换在特征提取中的优势与展望 在信号处理与数据分析领域&#xff0c;小波变换作为一种强大的数学工具&#xff0c;其多尺度分析特性使得它在特征提取中扮演着…

浅析STM32H750启动文件

目录 概述 1 启动文件介绍 1.1 启动文件功能 1.2 汇编语言指令 2 启动代码细节 2.1 分配栈空间 2.2 分配堆空间 2.3 中断向量表 2.4 复位程序 2.5 中断服务程序 2.5.1 CPU内部中断程序 2.5.2 CPU内部扩展中断程序 2.6 用户堆栈初始化 3 总结 概述 本文以startup_stm3…

基于springboot实现城镇保障性住房管理系统项目【项目源码+论文说明】

基于springboot实现城镇保障性住房管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了城镇保障性住房管理系统的开发全过程。通过分析城镇保障性住房管理系统管理的不足&#xff0c;创建了一个计算机…

Intewell-Win_V2.1.2_release版本正式发布-鸿道Intewell操作系统

Intewell-Win_V2.1.2_release版本 版本号&#xff1a;V2.1.2 版本发布类型&#xff1a;release正式版本 版本特点 修复此前版本中的授权问题 特殊说明 版本或修改说明 修改&#xff1a; 1.已授权设备用户ID直接从授权文件获取&#xff1b; 2.授权设备硬件指纹采集系统硬盘…

Odoo|手把手教你Odoo集成drools,完成物料规则配置与报价单自动审核!

一、背景介绍 在实际业务中&#xff0c;售前根据客户需求选择相应的产品和对应的物料来生成报价单。然而&#xff0c;在填写报价单的过程中&#xff0c;可能会出现物料漏选或数量不准确的情况&#xff0c;这会对后续备货和生产效率造成重大影响。此外&#xff0c;由于产品和物料…

ctfhub-ssrf(2)

1.URL Bypass 题目提示:请求的URL中必须包含http://notfound.ctfhub.com&#xff0c;来尝试利用URL的一些特殊地方绕过这个限制吧 打开环境发现URL中必须包含http://notfound.ctfhub.com&#xff0c;先按照之前的经验查看127.0.0.1/flag.php,发现没什么反应&#xff0c;按照题…