当前位置:首页 > JavaScript

js实现关键字搜索功能

2026-04-05 01:36:20JavaScript

实现关键字搜索功能

在JavaScript中实现关键字搜索功能通常涉及对数组或DOM元素的过滤。以下是几种常见场景的实现方法:

数组过滤搜索

对于数据数组的搜索,可以使用filter()includes()方法:

const data = ['apple', 'banana', 'orange', 'grape'];
const keyword = 'ap';

const results = data.filter(item => 
  item.toLowerCase().includes(keyword.toLowerCase())
);

console.log(results); // ['apple', 'grape']

DOM元素搜索

在网页中搜索匹配的DOM元素:

js实现关键字搜索功能

function searchDOM(keyword) {
  const elements = document.querySelectorAll('.searchable');
  const lowerKeyword = keyword.toLowerCase();

  elements.forEach(el => {
    const text = el.textContent.toLowerCase();
    el.style.display = text.includes(lowerKeyword) ? '' : 'none';
  });
}

// 使用示例
document.getElementById('search-input').addEventListener('input', (e) => {
  searchDOM(e.target.value);
});

对象数组搜索

当搜索对象数组时,可以指定要搜索的属性:

const products = [
  { id: 1, name: 'Laptop', category: 'Electronics' },
  { id: 2, name: 'Shirt', category: 'Clothing' }
];

function searchObjects(array, keyword, ...props) {
  const lowerKeyword = keyword.toLowerCase();
  return array.filter(item => 
    props.some(prop => 
      String(item[prop]).toLowerCase().includes(lowerKeyword)
    )
  );
}

// 使用示例
const found = searchObjects(products, 'lap', 'name', 'category');
console.log(found); // [{id: 1, name: 'Laptop', category: 'Electronics'}]

实现模糊搜索

对于更灵活的搜索,可以使用正则表达式实现模糊匹配:

js实现关键字搜索功能

function fuzzySearch(text, keyword) {
  const pattern = keyword.split('').join('.*');
  const regex = new RegExp(pattern, 'i');
  return regex.test(text);
}

const items = ['JavaScript', 'Java', 'Python'];
const results = items.filter(item => fuzzySearch(item, 'jav'));
console.log(results); // ['JavaScript', 'Java']

添加搜索高亮

搜索后高亮显示匹配的关键字:

function highlightText(element, keyword) {
  const regex = new RegExp(keyword, 'gi');
  element.innerHTML = element.textContent.replace(
    regex, 
    match => `<span class="highlight">${match}</span>`
  );
}

性能优化建议

对于大型数据集,考虑以下优化措施:

  • 使用防抖技术限制搜索触发频率
  • 对数据进行预处理或建立索引
  • 使用Web Worker处理密集型搜索任务
  • 实现分页或虚拟滚动避免渲染过多结果

这些方法可以根据具体需求组合使用,构建出适合不同场景的关键字搜索功能。

分享给朋友:

相关文章

php搜索功能实现的

php搜索功能实现的

PHP 搜索功能实现方法 数据库搜索实现 使用 SQL 的 LIKE 语句进行模糊匹配,适用于小型网站和简单搜索需求。 $searchTerm = $_GET['search']; $query =…

vue实现搜索功能

vue实现搜索功能

实现搜索功能的基本思路 在Vue中实现搜索功能通常需要结合数据绑定、事件监听和过滤逻辑。可以通过计算属性或方法对数据进行实时筛选。 使用计算属性实现搜索 通过v-model绑定搜索输入框,利用计算属…

vue实现商品搜索功能

vue实现商品搜索功能

Vue 实现商品搜索功能 数据准备与绑定 在 Vue 组件中定义商品数据列表和搜索关键词。商品数据可以存储在 data 属性中,搜索关键词通过 v-model 双向绑定到输入框。 <templ…

php搜索功能实现

php搜索功能实现

PHP 搜索功能实现 在 PHP 中实现搜索功能通常涉及数据库查询、表单处理和结果展示。以下是几种常见的实现方法。 基础数据库搜索 使用 MySQL 数据库和 PHP 实现简单搜索功能: // 连…

php搜索功能实现的

php搜索功能实现的

实现PHP搜索功能的基本方法 PHP搜索功能通常通过结合数据库查询和表单处理实现。以下是几种常见的实现方式: 使用MySQL LIKE语句实现基础搜索 // 连接数据库 $conn = new my…

php搜索功能的实现

php搜索功能的实现

数据库查询实现搜索 在PHP中实现搜索功能,最基本的方式是通过SQL的LIKE语句查询数据库。创建一个搜索表单,用户输入关键词后,使用预处理语句防止SQL注入。 $searchTerm = $_GE…