当前位置:首页 > JavaScript

js搜索实现

2026-04-05 15:55:17JavaScript

JavaScript 搜索实现方法

基本字符串搜索

使用 includes() 方法检查字符串是否包含子串:

const str = "Hello World";
const result = str.includes("World"); // true

使用 indexOf() 获取子串位置:

const position = str.indexOf("World"); // 6

正则表达式搜索

使用 test() 方法进行模式匹配:

const regex = /world/i;
const isMatch = regex.test("Hello World"); // true

使用 match() 提取匹配结果:

const matches = "2023-04-01".match(/\d+/g); // ["2023", "04", "01"]

数组搜索

使用 find() 查找符合条件的第一项:

const users = [{id:1, name:"Alice"}, {id:2, name:"Bob"}];
const user = users.find(u => u.id === 2); // {id:2, name:"Bob"}

使用 filter() 筛选所有匹配项:

const filteredUsers = users.filter(u => u.name.includes("A")); // [{id:1, name:"Alice"}]

模糊搜索实现

结合字符串处理和正则表达式实现模糊匹配:

function fuzzySearch(text, query) {
  const pattern = query.split("").join(".*");
  return new RegExp(pattern, "i").test(text);
}
fuzzySearch("Electronics", "eltr"); // true

搜索算法优化

对于大型数据集,考虑预先建立索引:

const searchIndex = {};
data.forEach(item => {
  const keywords = item.name.toLowerCase().split(" ");
  keywords.forEach(key => {
    searchIndex[key] = searchIndex[key] || [];
    searchIndex[key].push(item);
  });
});

前端实时搜索

监听输入事件实现即时搜索:

const searchInput = document.getElementById("search");
searchInput.addEventListener("input", (e) => {
  const results = data.filter(item => 
    item.name.toLowerCase().includes(e.target.value.toLowerCase())
  );
  renderResults(results);
});

高级搜索库

考虑使用专业搜索库如Lunr.js:

js搜索实现

const idx = lunr(function() {
  this.ref("id");
  this.field("title");
  this.field("body");

  documents.forEach(doc => this.add(doc));
});

const results = idx.search("query");

标签: js
分享给朋友:

相关文章

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…