# vue 实现关键字高亮效果
vue 实现关键字高亮效果
这是啥子意思呢,就是类似于百度搜索,根据关键词搜索结果,搜索结果中,与关键词相同的字显示红色,仅此而已,没有什么大的功能。简单写一下demo。
环境
我使用的是 vue3 + ts 的语法来写,其实一个样儿,关键代码 js、ts 都可以,就一个方法,调用一下就可以了。
<template>
<div class="ed-con">
<el-input v-model="input" style="width: 240px" placeholder="Please input"/>
<p v-html="txt"></p>
</div>
</template>
<script setup lang="ts">
import {ref} from 'vue';
const input = ref('');
const txt = ref('在古老的小镇边缘,有一间被岁月温柔抚摸过的木屋,它静静地伫立在一片绚烂的野花丛中。屋内,住着一位名叫苏婉的女子,她拥有一双能洞察人心的眼睛和一头如夜色般深邃的长发。每天黄昏,苏婉都会坐在窗边,手捧一本泛黄的书,眼神时而凝重,时而温柔,仿佛在与书中人物进行着跨越时空的对话。\n' +
'\n' +
'某天,一阵突如其来的风雨打破了小镇的宁静,也吹散了苏婉心中的平静。一位浑身湿透的青年男子闯入了她的世界,带着一身未解之谜。苏婉望着他,眼中闪过一抹不易察觉的光芒,她知道,自己的生活从此将不再平凡。两人在雨后的木屋里,围绕着炉火,开始编织起一段关于寻找、救赎与爱的故事,而窗外的世界,正悄悄地为这段奇遇添上一抹神秘的色彩。')
</script>
<style scoped lang="scss">
.ed-con {
width: 100%;
height: 100%;
padding: 20px;
box-sizing: border-box;
::v-deep(.ed-highlight) {
color: red;
}
}
</style>
上面的代码运行起来就是这样的:
接下来就是怎么实现输入框输入数据之后,下面的文字中,与关键字相同的文字高亮成红色的,很简单,就一个方法:
const highlightText = () => {
if (!input.value) {
return txt.value;
}
const regex = new RegExp(`(${input.value})`, 'gi');
const highlightedText = txt.value.replace(regex, '<span class="ed-highlight">$1</span>');
return highlightedText;
}
然后再调用一下这个方法就可以了:
<p v-html="highlightText()"></p>
就是把关键字给用标签包裹起来,然后给这个标签设置一个 class 样式,然后通过 css 代码,给这个 class 加上一个红色的样式,就这样:
好了,就这样,拜了个拜!
【版权声明】本博文著作权归作者所有,任何形式的转载都请联系作者获取授权并注明出处!
【重要说明】博文仅作为本人的学习记录,论点和观点仅代表个人而不代表技术的真理,目的是自我学习和有幸成为可以向他人分享的经验,因此有错误会虚心接受改正,但不代表此刻博文无误!
【博客园地址】叫我+V : http://www.cnblogs.com/wjw1014
【CSDN地址】叫我+V : https://wjw1014.blog.csdn.net/
【Gitee地址】叫我+V :https://gitee.com/wjw1014
【重要说明】博文仅作为本人的学习记录,论点和观点仅代表个人而不代表技术的真理,目的是自我学习和有幸成为可以向他人分享的经验,因此有错误会虚心接受改正,但不代表此刻博文无误!
【博客园地址】叫我+V : http://www.cnblogs.com/wjw1014
【CSDN地址】叫我+V : https://wjw1014.blog.csdn.net/
【Gitee地址】叫我+V :https://gitee.com/wjw1014
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2020-11-27 CSS Flex 布局