高亮標題里的某個關鍵字正則表達式

?

使用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場景坐標系統、場景環境設置、光照與材質系統、相…