使用v-html渲染,写一个高亮方法

<span class="title-name" v-html="highlightKeywords(name, keywords)"></span>

 这里传入的name带了文件拓展名,所以先把名称从文件名里提取出来

// 高亮标题颜色highlightKeywords(name, keywords) {// 安全处理空值if (!name || typeof name !== 'string') return '';// 正则解释:// .*? 非贪婪匹配任意字符(尽可能少匹配)// (?=\.[^.]+$) 正向肯定预查:匹配后面紧跟着"点+扩展名"的位置const match = name.match(/.*?(?=\.[^.]+$)/);// 如果有匹配结果则返回,否则返回原名称(无扩展名的情况)const title = match ? match[0] : name;// console.log(title, '--title--')// console.log(match, '--match--')// 统一处理:将单个关键词转为数组,方便统一逻辑const keywordList = Array.isArray(keywords) ? keywords : [keywords];// 过滤空关键词const validKeywords = keywordList.filter(k => k && k.trim() !== '');if (validKeywords.length === 0) return title;// 构建正则表达式:匹配所有关键词(不区分大小写)// 转义特殊字符,避免正则语法错误const escapedKeywords = validKeywords.map(k => k.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') // 转义正则特殊字符);const regex = new RegExp(`(${escapedKeywords.join('|')})`, 'gi');// 替换匹配到的关键词,添加高亮样式return title.replace(regex, (match) => {return `<span style="color: blue">${match}</span>`;});},

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

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

相关文章

视频编解码中colorspace,color_range,color_trc,color_primaries,是做什么用的,是谁来指定的

在视频编解码中&#xff0c;colorspace&#xff08;色彩空间&#xff09;、color_range&#xff08;色域范围&#xff09;、color_trc&#xff08;传输特性&#xff09;、color_primaries&#xff08;原色&#xff09;是一组色彩相关元数据&#xff0c;它们共同决定了视频的颜色…

【QT】 Qt背景介绍与概述

文章目录&#x1f4dd;Qt背景介绍&#x1f320; 什么是Qt&#x1f309;Qt的发展史&#x1f320; Qt⽀持的平台&#x1f309; Qt版本&#x1f309; Qt的优点&#x1f309; Qt的应⽤场景&#x1f320; Qt的成功案例&#x1f320; Qt的发展前景及就业分析&#x1f6a9;总结&#x…

如何将拥有的域名自定义链接到我的世界服务器(Minecraft服务器)

关于Dynadot Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮…

2025暑期—07深度学习应用-总结

人有自动选取卷积核的能力&#xff0c;传统的图像处理不能自动选取卷积核非线性作用函数&#xff0c;Sigmoid由于梯度消失使用Relu。卷积神经网络的卷积核是未知的&#xff0c;自适应的。其中的权重是不断变化的&#xff0c;就是卷积核是不断变化的。卷积模糊了&#xff0c;池化…

数据结构-4(常用排序算法、二分查找)

一、思维导图二、冒泡排序def bubble_sort(ls):"""用i循环,逐步比较相邻元素,直到循环结束,停止交换&#xff0c;就像一个个气泡从下往上冒泡,每一次的循环结果都是最大的元素到了后面已排序序列的列首。"""j 0 # 用于确定循环次数,同时用于下…

策略模式(Strategy Pattern)+ 模板方法模式(Template Method Pattern)的组合使用

using Microsoft.Extensions.DependencyInjection;namespace ConsoleApp9 {internal class Program{static async Task Main(string[] args){Console.WriteLine("Hello, World!");// 创建并配置依赖注入容器var _serviceProvider new ServiceCollection().AddScoped…

es0102---语法格式、数据类型、整合springboot、创建库、创建映射、新增数据、自定义查询

ES 一、创建映射字段的语法格式 需要先构建索引库&#xff0c;在构建索引库中的映射关系 PUT /索引库名/_mapping {"properties": {"字段名": {"type": "类型","index": true&#xff0c;"store": false&#…

spring boot h2数据库无法链接问题

spring boot h2数据库无法链接问题datasource:# 数据库连接地址&#xff1a;H2在2.x后&#xff0c;不再支持创建数据库&#xff0c;需要手工创建&#xff0c;如&#xff1a;touch test.mv.db&#xff0c;# 否则会报“Database file not found”错误url: jdbc:h2:file:~/testdri…

pycharm配conda环境

最近在做表情包&#xff0c;画出来的表情包大小不一&#xff0c;但是vx表情包平台要求统一都是240*240的&#xff0c;所以用Pillow统一处理的一下。 如果你本地装的python并且添加到path了&#xff0c;pycharm可以自动获取到&#xff0c;但是我装得miniconda&#xff0c;pychar…

【Elasticsearch】Elasticsearch 跨机房部署

《Elasticsearch 集群》系列&#xff0c;共包含以下文章&#xff1a; 1️⃣ 冷热集群架构2️⃣ 合适的锅炒合适的菜&#xff1a;性能与成本平衡原理公式解析3️⃣ ILM&#xff08;Index Lifecycle Management&#xff09;策略详解4️⃣ Elasticsearch 跨机房部署5️⃣ 快照与恢…

立式数控深孔钻的工艺及光学检测方法 —— 激光频率梳 3D 轮廓检测

引言立式数控深孔钻作为深孔加工的关键设备&#xff0c;其工艺水平直接影响零件加工质量。深孔加工面临排屑、散热等挑战&#xff0c;而光学检测技术的发展为深孔加工精度控制提供了新途径。激光频率梳 3D 轮廓检测技术与立式数控深孔钻工艺的结合&#xff0c;实现了深孔加工与…

【YOLO系列】YOLOv4详解:模型结构、损失函数、训练方法及代码实现

YOLOv4详解&#xff1a;模型结构、损失函数、训练方法及代码实现 motivation YOLO系列作者Joseph Redmon与Alexey Bochkovskiy致力于解决目标检测领域的核心矛盾&#xff1a;精度与速度的平衡。YOLOv4的诞生源于两大需求&#xff1a; 工业落地&#xff1a;在移动端/边缘设备…

chromedriver下载与安装方法

chromedriver下载地址&#xff1a; 版本在&#xff1a;http://chromedriver.storage.googleapis.com/index.html 这是下载后&#xff1a; 把exe文件复制到浏览器的安装目录下 把exe文件复制到python的安装目录下 配置环境变量:此电脑→右击属性→高级系统设置→环境变量→用户…

基于QT(C++)实现(图形界面)选课管理系统

选课管理系统1 概述1.1 课程设计目的和意义根据课程大纲设定&#xff0c;面向对象课程设计的目的是&#xff1a;&#xff08;1&#xff09;理解面向对象的基本思想和三大机制&#xff0c;掌握基于 C 语法的面向对象的基 本概念和开发模式&#xff0c;熟练运用面向对象思维模式…

【阿里云-ACP-1】疑难题解析

1.弹性伸缩 AS 在企业中有广泛的应用场景,不仅适合业务量不断波动的应用程序,同时也适合业务量稳定的应用程序。以下关于弹性伸缩的使用说法正确的是( ) 选项内容 A 弹性伸缩可以用于云数据库 RDS 的自动扩容 B 弹性伸缩支持自动将 ECS 实例或 ECI 实例添加到 Memcache 实…

NLP:seqtoseq英译法案例

本文目录&#xff1a;一、案例概述二、数据集三、案例步骤&#xff08;一&#xff09;导入工具包和工具函数&#xff08;二&#xff09;数据预处理&#xff08;三&#xff09;构建数据源对象&#xff08;四&#xff09;构建数据迭代器&#xff08;五&#xff09;构建基于GRU的编…

docker的准备与部署

docker的重复使用bilibli 黑马视频 方便查看docker容器。设置格式通过官网dock查看格式命令 命令别名&#xff0c;简化输入

Java 大视界 -- Java 大数据在智能教育自适应学习路径规划与学习效果强化中的应用(362)

Java 大视界 -- Java 大数据在智能教育自适应学习路径规划与学习效果强化中的应用(362) 引言: 正文: 一、Java 构建的智能教育数据架构 1.1 多维度学习数据实时采集 1.2 知识图谱构建与知识点关联 二、Java 驱动的自适应学习路径规划 2.1 多模型融合的路径生成 2.2 学习效果…

2.1 为什么定义tensor数据结构?

PyTorch选择定义Tensors而非直接使用NumPy进行运算和数据处理&#xff0c;主要是因为Tensors在功能、性能和场景适配性上更贴合深度学习的需求。以下是关键原因分析&#xff1a; 1. 自动求导与计算图支持 核心差异&#xff1a;PyTorch的Tensors在运算时会自动构建计算图&#x…

Qt Quick 3D渲染

Qt Quick 3D是Qt框架中用于创建3D图形界面的强大模块&#xff0c;它提供了声明式的QML API&#xff0c;使得开发者无需深入底层图形API就能构建复杂的3D场景。本文将全面介绍Qt Quick 3D的核心概念和技术细节&#xff0c;包括3D场景坐标系统、场景环境设置、光照与材质系统、相…