当前位置:首页 > JavaScript

js实现匹配

2026-03-15 06:03:30JavaScript

正则表达式匹配

使用JavaScript的RegExp对象进行字符串匹配。通过test()方法检查字符串是否匹配模式,或使用exec()获取匹配细节。

const regex = /hello/i;
const str = 'Hello, world!';
console.log(regex.test(str)); // true

字符串方法匹配

JavaScript内置字符串方法如includes()indexOf()match()可直接进行基础匹配。

js实现匹配

const str = 'Find the substring';
console.log(str.includes('sub')); // true
console.log(str.indexOf('the') !== -1); // true

模糊匹配算法

实现Levenshtein距离算法进行相似度匹配,适用于拼写纠错等场景。

js实现匹配

function levenshtein(a, b) {
  const matrix = Array(b.length + 1).fill(null).map(() => 
    Array(a.length + 1).fill(null));
  for (let i = 0; i <= a.length; i++) matrix[0][i] = i;
  for (let j = 0; j <= b.length; j++) matrix[j][0] = j;
  for (let j = 1; j <= b.length; j++) {
    for (let i = 1; i <= a.length; i++) {
      const cost = a[i-1] === b[j-1] ? 0 : 1;
      matrix[j][i] = Math.min(
        matrix[j][i-1] + 1,
        matrix[j-1][i] + 1,
        matrix[j-1][i-1] + cost
      );
    }
  }
  return matrix[b.length][a.length];
}

模式匹配库

使用第三方库如minimatch进行glob模式匹配,或fuse.js实现模糊搜索。

const minimatch = require('minimatch');
console.log(minimatch('file.txt', '*.txt')); // true

const fuse = new Fuse(['apple', 'banana'], { threshold: 0.3 });
console.log(fuse.search('app')); // 返回匹配结果

高级正则技巧

利用正则表达式的捕获组、前瞻后顾等特性实现复杂匹配逻辑。

// 提取日期
const dateRegex = /(\d{4})-(\d{2})-(\d{2})/;
const dateMatch = '2023-05-15'.match(dateRegex);
console.log(dateMatch.slice(1)); // ['2023', '05', '15']

// 密码强度验证
const passwordRegex = /^(?=.*[A-Z])(?=.*[a-z])(?=.*\d).{8,}$/;
console.log(passwordRegex.test('Pass1234')); // true

标签: js
分享给朋友:

相关文章

js如何实现继承

js如何实现继承

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

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…

js实现左右滑动

js实现左右滑动

实现左右滑动的 JavaScript 方法 监听触摸事件 通过 touchstart、touchmove 和 touchend 事件来检测用户的手势操作。记录触摸的起始位置和移动距离,判断滑动方向。…