JavaScript实现静态页面关键词搜索与高亮显示

作者:函数茶馆时间:2026-10-22 08:33:03浏览:461

本文介绍如何使用JavaScript在静态HTML页面中实现关键词搜索并高亮显示的功能。通过获取用户输入的关键词,利用正则表达式匹配页面内容,并将匹配到的文本包裹在带有样式的span标签中,从而实现视觉上的高亮效果。

JavaScript实现静态页面关键词搜索与高亮显示

本文通过一个完整的示例,详细讲解如何利用JavaScript实现静态网页中的关键词搜索及高亮显示功能。该方案可供开发者参考与借鉴。


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JS搜索</title>
</head>
<body>
<input id="key-word" class="key-word" value="请输入搜索内容" />
<button id="search-button">搜索</button>
<div id="content" >
<p>这是主体内容,有很多内容,很多很多啊啊啊……,比如1234abcd啊啊啊啊</p>
<p>这是主体内容,有很多内容,很多很多啊啊啊……,比如1234abcd啊啊啊啊</p>
<p>这是主体内容,有很多内容,很多很多啊啊啊……,比如1234abcd啊啊啊啊</p>
<p>这是主体内容,有很多内容,很多很多啊啊啊……,比如1234abcd啊啊< d d>啊啊</p>
</div>
<script>
function $(id){
return document.getElementById(id)
}
var putWordsObj = $('key-word');
putWordsObj.onfocus = function(){
if(this.value == '请输入搜索内容')this.value='';
}
putWordsObj.onblur = function(){
if(!this.value)this.value='请输入搜索内容';
}
//search
$('search-button').onclick = function(){
var content = $('content').innerHTML;
var keyWord = $('key-word').value;
content = search_do(content, keyWord);
$('content').innerHTML = content;
//alert(content)
}
function search_do(content,keyWord){
var keyWordArr = keyWord.replace(/[\s]+/g,' ').split(' ');
var re;
for(var n = 0; n < keyWordArr.length; n ++) {
//re = new RegExp(">[\s\S]*?"+keyWordArr[n]+"[\s\S]*?<\S","gmi");
re = new RegExp(""+keyWordArr[n]+"","gmi");
content = content.replace(re,'<span style="color:#0f0;background-color:#ff0">'+keyWordArr[n]+'</span>');
}
return content;
}
</script>
</body>
</html>

具体运行效果如下图所示:

JavaScript实现静态页面关键词搜索与高亮显示

如需进一步了解JavaScript相关知识,建议查阅本站相关专题,包括《JavaScript数据结构与算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》以及《JavaScript错误与调试技巧总结》。

希望上述内容能对您的JavaScript编程实践提供有益帮助。

作者最新文章