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,一经查实,立即删除!

相关文章

《深入理解多线程编程》

《深入理解多线程编程》 多线程编程是一项强大的工具&#xff0c;能够提高程序的并发性和性能&#xff0c;但也伴随着一系列挑战。本文将深入介绍多线程编程的基本概念、优势&#xff0c;探讨常见问题&#xff0c;并提供实用的最佳实践和注意事项&#xff0c;帮助读者更好地理…

Linux上的uname

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

R语言影像批量镶嵌与裁剪——mosaic

你有中国不同省份的影像&#xff0c;想要拼接镶嵌成完整的中国影像 镶嵌一 library("raster") library("sp") library("rgdal") library("rgeos") library("…

2024-04-19 问AI: 介绍一下 Frobenius norm 在深度学习中的应用

文心一言 Frobenius范数在深度学习中具有广泛的应用。深度学习是一种模仿人类大脑神经网络结构进行信息处理和学习的方法&#xff0c;其核心是神经网络&#xff0c;由多层神经元组成。在神经网络的训练过程中&#xff0c;Frobenius范数可以帮助我们衡量模型参数的大小和重要性…

如何使用JavaScript与SVG元素进行交互

1. SVG与JavaScript交互基础知识点 SVG元素选择 学习使用JavaScript选择SVG元素的方法&#xff0c;如getElementById、querySelector等。 事件监听 掌握通过addEventListener方法来监听SVG元素的各种交互事件&#xff0c;如click、mouseover、mousemove等。 属性操作 了解如何…

CSS3 动画

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 ✍CSS3 动画&#x1f48e;1 什么是帧动画&#x1f48e;2 定义关键帧&#x1f…

使用TP8框架根据视频id查找所有评论和回复

在使用ThinkPHP 8&#xff08;TP8&#xff09;框架根据视频ID查找所有评论和回复时&#xff0c;你需要编写相应的控制器逻辑和模型方法来实现这一功能。下面是一个基本的示例&#xff0c;展示如何实现这个功能&#xff1a; 首先&#xff0c;确保你已经定义了Comment和Reply模型…

【全网瞩目】你想知道的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;满足不同场景和需求。 吴恩…

【opencv手动下载库】

opencv手动下载库 欢迎使用Markdown编辑器 欢迎使用Markdown编辑器 opencv手动下载&#xff1a; https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/opencv-python/ 安装opencv方法&#xff1a; https://www.cnblogs.com/sxkio/p/14320936.html

【0282】Postgres内核 ResourceOwner(资源所有者,Resource Owners)原理分析

0. Resource Owners(资源所有者) ResourceOwner对象是为了简化与查询相关的资源(如缓冲引脚和表锁)的管理而发明的一个概念。需要以可靠的方式跟踪这些资源,以确保它们将在查询结束时被释放,即使查询由于错误而失败。我们没有期望整个执行器都具有万无一失的数据结构,而是…

python的os模块最常用的API

目录 一、os 二、os.path 三、文件的简单读写 Python的os模块提供了与操作系统交互的功能。这个模块中的函数可以用来执行文件和目录操作&#xff0c;获取和修改环境变量&#xff0c;以及执行操作系统命令等。这里列举了最常用的几种方法&#xff0c;剩下的可以现查现用。 …

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

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

嵌入式面试-回答UART

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