当前位置: 首页 > news >正文

【uniapp】vue2 搜索文字高亮显示

【uniapp】vue2 搜索文字高亮显示

我这里是把方法放在公共组件中使用

props: {// 帖子listpostList: {type: Array,required: true},// 搜索文本字体高亮highLightSearch: {type: String,required: false}
},
watch: {// 监听 props 的变化postList: {immediate: true,handler(newVal) {// 变化后的新值, 当前的高亮搜索词this.updateHighlightedPostList(newVal, this.highLightSearch);},},
},
methods: {updateHighlightedPostList(postList, searchKeyword) {// 检查是否有搜索关键字if (!searchKeyword) {this.highlightedPostList = [...postList]return}// 创建正则表达式匹配关键字(g 全局匹配,i 不区分大小写)const regex = new RegExp(`(${searchKeyword})`, "gi");// 更新高亮内容this.highlightedPostList = postList.map((item) => ({...item,title: item.title.replace(regex,`<text class="hight_blue">$1</text>` // 将匹配到的内容 ($1) 包裹在 <text> 标签中),}));},
}
<view v-for="p in highlightedPostList" :key="p.id"><!-- 页面文字展示一定要用 v-html 便于解析标签样式 --><view v-html="p.title" class=""></view>
</view>

高亮实现方式是用 HTML 标签包裹匹配文本,通过 CSS 控制样式 

注意事项:

        使用 v-html 显示 title 时要小心 XSS 攻击,确保 searchKeyword 是可信的

        如果 postList 很大,频繁更新可能影响性能,可以考虑防抖

        正则表达式中的特殊字符可能需要转义

http://www.dtcms.com/a/155123.html

相关文章:

  • MongoDB Shard Cluster
  • 科技赋能建筑新未来:中建海龙模块化建筑产品入选中国建筑首批产业化推广产品
  • Kafka和flume整合
  • HOW - 如何模拟实现 gpt 展示答案的交互效果
  • Python判断语句-语法:if,if else,if elif else,嵌套,if else语句扁平式写法,案例
  • android jatpack Compose 多数据源依赖处理:从状态管理到精准更新的架构设计
  • kafka整合flume与DStream转换
  • #苍穹外卖# day 10-11
  • Move Registry 发布,实现 Sui 的超级互操作性
  • ubuntu22.04部署Snipe-IT
  • MYSQL 常用字符串函数 和 时间函数详解
  • 信息学奥赛一本通 1509:【例 1】Intervals | OpenJudge 百练 1201:Intervals
  • 云服务器centos 安装hadoop集群
  • CS001-7-hbao
  • 海之淀攻略
  • 【视频时刻检索】Text-Video Retrieval via Multi-Modal Hypergraph Networks 论文阅读
  • 驱动开发硬核特训 · Day 21(上篇) 抽象理解 Linux 子系统:内核工程师的视角
  • Spring的xxxAware接口工作原理-笔记
  • 高等数学第三章---微分中值定理与导数的应用(3.1微分中值定理3.2洛必达法则)
  • 如何设置极狐GitLab 议题截止日?
  • 050_基于springboot的音乐网站
  • 图解YOLO(You Only Look Once)目标检测(v1-v5)
  • 零基础上手Python数据分析 (23):NumPy 数值计算基础 - 数据分析的加速“引擎”
  • 深度强化学习(DRL)实战:从AlphaGo到自动驾驶
  • React 文件链条
  • [论文阅读]ReAct: Synergizing Reasoning and Acting in Language Models
  • 设备接入与APP(应用程序)接入华为云iotDA平台的详细操作步骤及获取方式
  • 【动手学大模型开发】VSCode 连接远程服务器
  • Asp.Net Core 异常筛选器ExceptionFilter
  • 前端技术Ajax入门