前端做模糊搜索
我们先看一下效果图:
这是搜索关键字cfg时,会自动匹配到config方法
同样,我们再看另一个例子
通过关键字bi会匹配到好几个结果
这个和一些编辑器的搜索功能很像,比如sublime text,不需要知道关键字的完整拼写,只需要知道其中的几个字母即可。
那么这个功能在前端我们如何去实现呢?
不考虑性能的话,我们可以用正则简单实现如下:
把关键字拆分,加入(.?),如cfg最终为 (.?)(c)(.?)(f)(.?)(g)(.*?),然后拿这个正则去测试要搜索的列表,把符合要求的选项给拿出来即可
考虑到要高亮结果,我们还要生成对应的替换表达式,最后的函数如下
var escapeRegExp = /[\-#$\^*()+\[\]{}|\\,.?\s]/g;
var KeyReg = (key) => {
var src = ['(.

