如何有效地过滤与字符序列匹配的字符串数组,以便字符可以在字符串中的任何位置匹配,但按使用顺序匹配?
这是编辑器和IDE中常见的一个功能,可以快速过滤文件名。
在附加的图像链接中查看滤镜的运行情况的插图。

这不是JavaScript autocomplete without external library的副本,因为这里的其中一个要求是用户输入"Caz“与这个问题的答案中解释的”Caz“匹配,但在其他问题的答案中没有。
发布于 2019-11-29 19:02:17
这实际上比看起来简单。此外,目前接受的解决方案实际上并不一致。
您只需构造一个正则表达式,该正则表达式接受搜索字符串的每个字符之间的0个或更多个字符。
const values = ['Belgium', 'Brest', 'Britian']
const query = 'Be'
// /.*b.*e.*/
const re = RegExp(`.*${query.toLowerCase().split('').join('.*')}.*`)
// [ 'Belgium', 'Brest' ]
const matches = values.filter(v => v.toLowerCase().match(re))https://stackoverflow.com/questions/50920180
复制相似问题