码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • vue实现搜索文字高亮功能


    在前端开发中,要实现文字搜索高亮效果,你可以使用JavaScript来搜索文本并通过CSS或其他方式对匹配的文本进行高亮处理。以下是一种常见的方法:

    在这里插入图片描述
    实现步骤:
    1、 获取用户输入的搜索词。
    2、创建一个正则表达式,以全局(g)不区分大小写(i)的方式匹配搜索词。
    获取文本内容。
    3、使用正则表达式替换匹配的文本,并在匹配文本周围添加高亮类。
    4、更新文本内容。

    一、使用示例

    1、在页面中使用v-html渲染

    	<template>
      <div class="box">
        <!-- 搜索框 -->
        <div class="mySearch">
          <van-search
            v-model="PopUpSarCh"
            show-action
            placeholder="请输入搜索关键词"
            @search="onSearch"
            class="onSearch"
          >
            <template #action>
              <div @click="onSearch">搜索</div>
            </template>
          </van-search>
        </div>
       
        <!-- 搜索结果 -->
        <div class="SearchResults">
          <div class="SearchContent" v-for="(item, index) in list" :key="index">
            <h5 v-html="item.title"></h5>
            <div class="myContent" v-html="item.name"></div>
            <div class="dotted"></div>
          </div>
        </div>
       
      </div>
    </template>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    2、实现高亮的js方法

    export default {
      data() {
        return {
          list: [], // 被检索的数组对象,按照需求定义
          PopUpSarCh: "",
        };
      },
      methods: {
        // 搜索框方法
        onSearch() {
          //每次搜索前清空
          this.list = [];
          var arr = []; // 接口查询内容
          this.list = arr;
          this.changeColor(this.list);//调用搜索词方法
        },
        // 搜索关键词高亮方法
        changeColor(result) {
          //result为接口返回的数据
          result.map((item, index) => {
            if (this.PopUpSarCh) {
              let replaceReg = new RegExp(this.PopUpSarCh, "ig");
              let replaceString = `${this.PopUpSarCh}`;
              result[index].title = item.title.replace(replaceReg, replaceString);
              result[index].name = item.name.replace(replaceReg, replaceString);
            }
          });
          this.records = result;
        },
      },
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    二、封装高亮工具类并使用

    export function hightLight (keyWord: string, suggtion: string) {
        // 使用 regexp 构造函数,因为这里要匹配的是一个变量
        const reg = new RegExp(keyWord, 'ig')
        const newSrt = String(suggtion).replace(reg, function (p) {
          return '' + p + ''
        })
        return newSrt
      }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    import { hightLight  } from '@/utils'
    hightLight('关键字', '关键字匹配')
    
    • 1
    • 2
  • 相关阅读:
    I.MX6U ALPHA裸机开发
    Asp-Net-Core开发笔记:进一步实现非侵入性审计日志功能
    计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度(matlab代码)
    java基础 集合(2) Set接口
    PMP子过程定义总结
    您的计算机已被Mallox勒索病毒感染?恢复您的数据的方法在这里!
    第三十六章 使用 CSP 进行基于标签的开发 - 使用尽可能少的#server和#call调用
    【LeetCode】17. Longest Palindrome·最长回文串
    Android逆向第一步之开启root权限
    图灵奖公布:高性能计算先驱、为超算铺平道路的Jack Dongarra获奖
  • 原文地址:https://blog.csdn.net/m0_47791238/article/details/133788352
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号