前端模糊搜索实现。
转义关键字
避免带有()*
等特殊字符的字符串与正则冲突:
1 | function escapeRegExp(str) { |
根据关键字生成匹配正则
将关键字拆分成正则,普通 => /(.*?)(普)(.*?)(通)(.*?)/i
1 | function keywordReg(keyword) { |
找到最大匹配长度
1 | function findMaxMatch(str, keyword) { |
模糊查询
1 | function fuzzySearch(strs, keyword) { |
demo
1 | const strs = ["VIP1(默认)", "vip2", "vi普通用户", "会员用户"]; |
See the Pen 前端模糊查询 by ly023 (@ly023) on CodePen.