Vue实现搜索关键字标红高亮加粗

news2024/11/15 12:15:09

博主介绍

📢点击下列内容可跳转对应的界面,查看更多精彩内容!

🍎主页:水香木鱼
🍍专栏:后台管理系统


文章目录

简介:这是一篇有关【Vue实现搜索关键字标红高亮加粗】的文章,博主用最精简的语言去表达给前端读者们。

核心代码
完整代码

在这里插入图片描述

详细注释,已在文下注明

1、核心代码

  keySign(title) {
      let s = this.value; // 搜索框的值(您要标红的关键字)
      var str = title; // 列表标题(原文本)

      // 去除中间空格且字符之间用逗号隔开
      let inputvalue = s.replace(/\ +/g, ","); // 把空格分开的字符串转换成以逗号分割
      let keyWordArr2 = inputvalue.split(","); // 把字符串分割转换成数组(方便截取)
      // 判断文本段落(原文本)是否为空
      if (str && str != "") {
        // 遍历分割后的字符串
        keyWordArr2.forEach((e) => {
          let regStr = "" + `(${e})`;
          let reg = new RegExp(regStr, "g");
          // 如果匹配成功则抛出关键字DOM
          // TIPS: 这块您可以自定义标签可根据您的需求自定义样式
          str = str.replace(
            reg,
            '<span style="color:#fff;font-weight: bold;background-color: red;">' +
              e +
              "</span>"
          ); // 改变搜索关键字颜色为红色
        });
      }
      return str;
    },

2、完整代码

<template>
  <div>
    <!-- 搜索框 -->
    <section>
      <input v-model="value" />
      <span>
        当前要标红的关键字:<b>{{ value }}</b></span
      >
    </section>
    <!-- END -->

    <!-- 列表 -->
    <section v-for="(item, index) in list" :key="index" class="content">
      <div>
        <span v-html="keySign(item.title)"></span>
      </div>
      <hr />
      <p>其他内容...</p>
    </section>
    <!-- END -->
  </div>
</template>

<script>
export default {
  data() {
    return {
      handleStatus: false,
      // 搜索框的值(您要标红的关键字)
      value: "",
      // 模拟假数据列表
      list: [
        { id: 1, title: "中心化交易所如何用Merkle Tree实现资产储备证明" },
        { id: 2, title: "针对以太坊实现的一种Sparse Merkle Tree" },
        { id: 3, title: "从零开始设计并实现HDMI显卡" },
        { id: 4, title: "一文读懂Docker原理" },
        { id: 5, title: "区块链钱包安全指南" },
      ],
    };
  },

  methods: {
    /**
     * 标红关键字
     * @description 可自定义HTML结构
     * @param {String} title - 列表标题
     * @return void
     */
    keySign(title) {
      let s = this.value; // 搜索框的值(您要标红的关键字)
      var str = title; // 列表标题(原文本)

      // 去除中间空格且字符之间用逗号隔开
      let inputvalue = s.replace(/\ +/g, ","); // 把空格分开的字符串转换成以逗号分割
      let keyWordArr2 = inputvalue.split(","); // 把字符串分割转换成数组(方便截取)
      // 判断文本段落(原文本)是否为空
      if (str && str != "") {
        // 遍历分割后的字符串
        keyWordArr2.forEach((e) => {
          let regStr = "" + `(${e})`;
          let reg = new RegExp(regStr, "g");
          // 如果匹配成功则抛出关键字DOM
          // TIPS: 这块您可以自定义标签可根据您的需求自定义样式
          str = str.replace(
            reg,
            '<span style="color:#fff;font-weight: bold;background-color: red;">' +
              e +
              "</span>"
          ); // 改变搜索关键字颜色为红色
        });
      }
      return str;
    },
  },
};
</script>

<style scoped>
/* 样式根据您的需求写即可 */
.content {
  background: rgb(169, 186, 202);
  padding: 10px;
  margin-bottom: 20px;
  margin-top: 10px;
}
</style>

相关推荐

⭐vue项目屏幕适配【帮我们自动将px单位转换成rem单位】
⭐前端清除项目默认样式【拿去即用】
⭐vue基于promise可以用于浏览器和node.js的网络请求库【axios封装-收藏版】
⭐前端vue项目性能优化【打包压缩、去除亢余文件】
⭐vue-生成二维码【生成、点击输入框内叉号移除生成的二维码、输入框聚焦】

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

光流法draw_flow()函数报错

光流法draw_flow()函数报错 1 import cv22 from scipy import *3 4 5 def draw_flow(im, flow, step16):6 """ Plot optical flow at sample points7 spaced step pixels apart. """8 h, w im.shape[:2]9 y, x mgrid[step / 2…

苹果电脑pd工具箱Parallels Toolbox中文

ParallelsToolbox中文版是一款体积小巧、功能齐全的电脑系统工具箱&#xff0c;Parallels Toolbox将所有的功能均非常直观的展现出来了&#xff0c;在这里可以轻松实现驱动器清理、视频转换、桌面隐藏、锁定屏幕、音频录制等一系列操作。 专为创意人士、学生、小企业主、长期多…

这些基本语法规则你还不知道?那你的Python还没入门...

官方对Python的介绍如下&#xff1a;Python是一款易于学习且功能强大的编程语言。它具有高效率的数据结构&#xff0c;能够简单又有效地实现面向对象编程。 Python有着非广泛的应用&#xff0c;几乎所有大中型互联网公司都在使用Python&#xff0c;例如国外的Google、Youtube、…

AutoDL算力租用,Mobaxterm+Pycharm+VScode通过SSH连接远程服务器AutoDL

上干货&#xff1a; 一 、AutoDL算力租用平台使用 https://www.autodl.com/register?codef8e175e4-67c3-4cca-b120-09b11caaf2e6 第一步先注册&#xff0c;新注册的有免费十块代金劵&#xff0c;提供免费体验一下&#xff0c;本想白嫖&#xff0c;一体验&#xff0c;直接上车…

重塑感知,荣耀金洋!金洋奖两项用户体验奖项公布

11月17日&#xff0c;银行APP用户体验外滩峰会圆满落幕。其间&#xff0c;金洋奖用户体验APP Top20、金洋奖适老化及无障碍体验APP Top10两项用户体验类奖项重磅颁出&#xff0c;聚焦用户体验&#xff0c;发现和挖掘业内用户体验优秀实践案例&#xff0c;助力行业提升APP用户体…

已有项目与git建立连接、老项目搭建git管理

最近接手了一个已经上线很久的项目&#xff0c;原来都是ftp进行修改&#xff0c;所以谁改的改了什么都没有记录&#xff0c;决定给这个项目加上git。 首先由于项目在线上服务器我没有直接在线上进行git远程库的上传&#xff0c;所以ftp把整个项目都拉到本地之后进行的操作。 一…

prometheus安装和oracle告警配置

一、安装Prometheus 通过git下载新版本promethus mv prometheus-2.40.1.linux-amd64.tar.gz /usr/local/ cd /usr/local tar zxvf prometheus-2.40.1.linux-amd64.tar.gz cd /usr/local/prometheus-2.40.1.linux-amd64 vim prometheus.yml global:scrape_interval: 15s # S…

BDD - SpecFlow Driver Pattern 驱动模式

BDD - SpecFlow Driver Pattern 驱动模式引言Driver Pattern 的优势举例不用 Driver Pattern运用 Driver Pattern引言 前面 《 BDD - SpecFlow Page Object Model POM 》介绍了 POM 模式&#xff0c;用于提取 Web UI 元素封装成 Page Object 类&#xff0c;今天介绍另外一种 D…

电子统计台账:处理时间与名称所在行有交错的流水账格式

目录 1 新建项目 2 水平过滤模板 3 垂直过滤模板是重点 实际工作中&#xff0c;各种千奇百怪的事情都能遇上。本来普通格式的流水账可以处理了还挺高兴&#xff0c;一下子又来了这样的数据格式&#xff0c;居然名称前面根本没有日期这样的流水账&#xff1a; 这种情况还是需…

【LeetCode每日一题】——462.最小操作次数使数组元素相等 II

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 排序 二【题目难度】 中等 三【题目编号】 462.最小操作次数使数组元素相等 II 四【题目描述】…

2022NUSTCTF--web

ezProtocol web基础 POST / HTTP/1.1 Host: 43.143.7.97:28520 Pragma: no-cache Cache-Control: no-cache Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Acc…

Linux信号

目录注意信号概念用kill -l命令可以查看系统定义的信号列表信号处理常见方式概览产生信号1. 通过终端按键产生信号Core Dump2. 调用系统函数向进程发信号3. 由软件条件产生信号4. 硬件异常产生信号信号捕捉模拟一下野指针异常总结阻塞信号1. 信号其他相关常见概念2. 在内核中的…

Jest单测实践篇

快照测试 快照测试在你要确保你的UI没有发生改变的时候非常有用。jest的快照测试为文本测试&#xff0c;第一次执行时存储本次的快照&#xff0c;然后在之后的测试过程中进行文本比对。 toMatchSnapshot() 方法 import React from react; import Link from ../Link.react; i…

Python编程 列表的常用方法

作者简介&#xff1a;一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.字符串(str) 1.字符串常见操作(熟悉) 2.L.append(object) 3.L.exten…

前端开发环境搭建

1.安装git 去官网下载git安装包https://gitforwindows.org/ 2.配置ssh公钥这样再操作git 的时候就不用输入密码了 1、鼠标右键&#xff0c;点击 ‘git bash here’ 2、配置一下name 、eamil git config --global user.name 用户名 git config --global user.email 邮箱 3…

Spring 6面向切面编程aop详解

面向切面编程十五、面向切面编程AOP15.1 AOP介绍15.2 AOP的七大术语15.3 切点表达式15.4 使用Spring的AOP15.4.1 准备工作15.4.2 基于AspectJ的AOP注解式开发实现步骤通知类型切面的先后顺序优化使用切点表达式全注解式开发AOP15.4.3 基于XML配置方式的AOP&#xff08;了解&…

Windows 10下部署Java环境——jdk1.8.0_301版本

文章目录JDK安装JDK的环境配置验证JDK配置成功JDK安装 JDK1.8.0_301版本资源&#xff1a;https://download.csdn.net/download/qq_43408367/87061076?spm1001.2014.3001.5503 安装步骤参考&#xff1a;Windows 10下部署Java环境——JDK 11.0.2版本 JDK的环境配置 “我的电…

配置静态ip,主机名,centos安装jdk,hadoop等

切换到root用户操作 su root配置ip地址和ip地址的配置&#xff0c;网关&#xff0c;域名解析 vim /etc/sysconfig/network-scripts/ifcfg-ens33linux⾥的bootproto的none,static,dhcp有什么区别这个是⽹络配置参数&#xff1a; BOOTPROTOstatic 静态IP BOOTPROTOdhcp 动态IP…

消息队列 RocketMQ 5.0:从消息服务到云原生事件流平台

前言 回顾 RocketMQ 的发展历程&#xff0c;至今已十年有余。2022 年 RocketMQ 5.0 正式发布&#xff0c;全面迈进云原生时代。 11 月 5 日&#xff0c;2022 杭州 云栖大会上&#xff0c;阿里云智能高级产品专家杨秋弟在云原生峰会上发表主题演讲&#xff0c;发布消息队列 R…

【蓝桥杯冲击国赛计划第6天】字典

文章目录1. 字典1.1 概念1.2 字典的定义1.3 字典的添加1.4 字典的修改1.5 字典的删除1.6 字典的访问1.7 字典的排序2. 实例「弗里的语言」题目描述输入描述输出描述输入输出样例示例1示例2运行限制2.1 简单分析2.2 初始化2.3 get 访问2.4 补充2.5 完整代码3. 实例「快递分拣」题…