为了账号安全,请及时绑定邮箱和手机立即绑定

求原理和实现: 部分字符的建议补全

求原理和实现: 部分字符的建议补全

慕莱坞森 2018-11-21 17:13:44
Content assist provides you with a list of suggested completions for partially entered strings.内容协助为您提供部分输入的字符串的建议完成列表。描述大概如上,我不知道怎么用一个更精确的词来形容。sublime中有这个功能,你输入“不完整的字符”,它会给你返回,包含这些字母的所有结果。譬如:输入 ds 可以得到 desk ,尽管中间间隔了一个 字母 e。我就想知道这是怎么实现的,原理是什么?而且,这个功能,有名字吗(我其实不知道这个功能应该叫啥名字,所以也妨碍了在网上搜寻答案)?
查看完整描述

1 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

  1. 这个功能,应该叫“搜索智能提示”

  2. 实现办法有很多种,但是我只知道最简单最容易理解的一种,复杂的对查询算法做了优化,效率更高,可能涉及到动态规划问题。

  3. 如果是最简单的方法,就是把字符串拆开,然后向每两个字中间放入一个.*,再将其生成正则,用这个正则去匹配列表

  4. JS伪代码:

var list = [ ... ];

var text = 'ds';

var result = [];


if(text != '') {

    var pattern = new RegExp(text.split('').join('.*'));


    result = list.filter(function(item) {

        return pattern.test(item);

    });

}

演示效果:

https://img1.sycdn.imooc.com//5c2712240001213403660180.jpg

查看完整回答
反对 回复 2018-12-29
  • 1 回答
  • 0 关注
  • 409 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号