前端实现检索文本高亮实现

这篇具有很好参考价值的文章主要介绍了前端实现检索文本高亮实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

使用搜索引擎时的搜索结果高亮,搜索文本在查询出来的结果内高亮显示,这种在全文检索应该很常见

搜索问题高亮,JS,css,前端,文本高亮,全文检索

二、实现

看了下百度检索的实现,是给内容加上了em标签,然后给em标签设置颜色,如下所示:

搜索问题高亮,JS,css,前端,文本高亮,全文检索

在前端实现搜索并展示文字高亮的功能,可以通过以下步骤进行:

1、 获取搜索关键词:首先,你需要获取用户输入的搜索关键词。这可以通过表单输入、输入框或其他交互方式来实现。

2、 遍历文本内容:将需要进行搜索的文本内容获取到,并进行遍历。这可以是一个字符串、HTML 元素的文本内容或其他文本源。

3、 高亮匹配的关键词:在遍历过程中,对于每个文本片段,判断是否包含搜索关键词。如果包含,可以使用 HTML 标签或 CSS 类来添加样式,从而实现高亮效果。例如,可以使用 <span> 标签包裹匹配的关键词,并为该标签添加自定义的 CSS 类。

4、 更新文本内容:根据搜索结果进行高亮处理后,将更新后的文本内容重新渲染到页面上,以展示高亮效果。

下面是一个使用 JavaScript 实现搜索并展示文字高亮的简单示例:

<!DOCTYPE html>
<html>
	<head>
		<style>
			.highlight { background-color: yellow; font-weight: bold; }
		</style>
	</head>
	<body>
		<input type="text" id="searchInput" placeholder="Search">
		<p id="content">
			Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ac metus
			ac risus lacinia malesuada. Curabitur eget mi euismod, tincidunt lacus
			nec, sodales lectus. Sed vitae mi at sem tristique varius. Nulla facilisi.
			Phasellus sed justo magna. Sed ullamcorper enim vitae lectus vehicula,
			sit amet mollis libero lacinia. Vestibulum ante ipsum primis in faucibus
			orci luctus et ultrices posuere cubilia Curae; Sed auctor, urna a facilisis
			tristique, lacus sem lacinia ex, et efficitur mi eros sit amet metus.
		</p>
		<script>
			function highlightText(searchTerm) {
                const contentElement = document.getElementById('content');
                const content = contentElement.textContent;
                const regex = new RegExp(searchTerm, 'gi');
                const highlightedContent = content.replace(regex, match => `<span class="highlight">${match}</span>`);
                contentElement.innerHTML = highlightedContent;
            }
            const searchInput = document.getElementById('searchInput');
            searchInput.addEventListener('input', function() {
              const searchTerm = this.value.trim();
              highlightText(searchTerm);
            });
		</script>
	</body>

</html>

在上面的示例中,我们通过监听搜索输入框的 input 事件来获取搜索关键词。然后,我们使用正则表达式和 replace() 方法来替换匹配的关键词,并使用 <span> 标签和 .highlight 类来添加高亮样式。最后,我们将更新后的内容重新赋值给文本容器,从而实现高亮展示效果。

需要注意的是,上述示例仅仅是一个简单的实现,如果需要更复杂的搜索功能,可能需要使用更高级的搜索库或框架。此外,对于大量文本内容的搜索,可能需要考虑性能优化的问题。

三、最后

本人每篇文章都是一字一句码出来,希望大佬们多提提意见。顺手来个三连击,点赞👍收藏💖关注✨。创作不易,给我打打气,加加油☕文章来源地址https://www.toymoban.com/news/detail-829618.html

到了这里,关于前端实现检索文本高亮实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL全文检索临时代替ES实现快速搜索

    引入 在MySQL 5.7.6之前,全文索引只支持英文全文索引,不支持中文全文索引,需要利用分词器把中文段落预处理拆分成单词,然后存入数据库。 从MySQL 5.7.6开始,MySQL内置了ngram全文解析器,用来支持中文、日文、韩文分词。 全文索引只支持InnoDB和MyISAM引擎,支持的类型为C

    2024年02月07日
    浏览(50)
  • 双方案-基于Mysql 与 ElasticSearch实现关键词提示搜索与全文检索

    就喜欢搞这种不需要怎么费劲的东西,只需要把思路阐述清楚,随笔性质的博文,顺手啊,几乎不用改定就可以当博文发布出去。 那么,这里的话我们要做的就是实现这个的一个搜索功能,这个前端我就不说了,实现起来起来其实还是容易的,就是费劲。我们主要关注

    2024年01月18日
    浏览(63)
  • 如何优化因为高亮造成的大文本(大字段)检索缓慢问题

    首先还是说一下背景,工作中用到了 elasticsearch 的检索以及高亮展示,但是索引中的 content 字段是读取的大文本内容,所以后果就是索引的单个字段很大,造成单独检索请求的时候速度还可以,但是加入高亮之后检索请求的耗时就非常的慢了。所以本文从 更换高亮器类型 的

    2024年02月11日
    浏览(41)
  • 大文本的全文检索方案附件索引

    Elasticsearch 附件索引是需要插件支持的功能,它允许将文件内容附加到 Elasticsearch 文档中,并对这些附件内容进行全文检索。本文将带你了解索引附件的原理和使用方法,并通过一个实际示例来说明如何在 Elasticsearch 中索引和检索文件附件。 索引附件的核心原理是通过 Inges

    2024年02月12日
    浏览(35)
  • ES全文检索pdf、word、txt等文本文件内容

    需求: 用ES对上传文件内容的检索和高亮显示。 之前从事于物联网行业,从多年前了解ES以后没有使用过,本篇文章就是为了记录小白用ES完成工作的过程。 Elasticsearch的介绍、安装和环境这里不过多介绍,网上有很多。 思考: 文本搜索,文本需要上传elasticsearch。支持

    2024年04月11日
    浏览(58)
  • 全文检索工具elasticsearch:第四章:开发电商的搜索列表功能

    // skuInfo转化成skuLsInfo for (SkuInfo skuInfo : skuInfos) { SkuLsInfo skuLsInfo = new SkuLsInfo(); BeanUtils.copyProperties(skuInfo,skuLsInfo); // 将skuLsInfo导入到es中 Index index = new Index.Builder(skuLsInfo).index(“gmall”).type(“SkuLsInfo”).id(skuLsInfo.getId()).build(); jestClient.execute(index); } } } @Override public List SkuListByCat

    2024年04月09日
    浏览(48)
  • pgsql_全文检索_使用空间换时间的方法支持中文搜索

    PostgreSQL 14.2, compiled by Visual C++ build 1914, 64-bit 提到全文检索首先想到的就是ES(ElasticSearch)和Lucene,专业且强大。对于一些小众场景对于搜索要求不高,数据量也不大的情况, 上ES等有些繁重,增加工作量还增加了后期运维成本。 PgSql也支持全文检索原理和ES一样,支持分词和反

    2024年02月04日
    浏览(41)
  • 后端架构师必知必会系列:搜索引擎与全文检索

    作者:禅与计算机程序设计艺术 什么是搜索引擎?它是指在互联网上搜集、整理并快速索引海量信息的数据结构与数据库,对用户的查询请求进行快速、准确的响应的技术。搜索引擎又分为互联网搜索引擎(英语: internet search engine)和本地搜索引擎(英语: local search engine)。 全文

    2024年02月05日
    浏览(51)
  • 原生小程序如何使用pdf.js实现查看pdf,以及关键词检索高亮

    前往 pdf.js 的 官网 下载库文件,下哪个版本都可以,后者适用于旧版浏览器,所以我下载的是后者 下载完成后,因为微信小程序打包的限制,我将库文件放到项目的后台系统了,在h5端处理会比在小程序端处理方便,最后就用web-view标签嵌入到小程序即可; 2.1、目录结构 2

    2024年02月01日
    浏览(54)
  • highlight.js 实现搜索关键词高亮效果

    先看效果: 更新:增加切换显示 折腾了老半天,记录一下 注意事项都写注释了 代码: 更新后代码:

    2024年02月02日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包