云海帆
云海帆
  • 发布:2015-11-23 16:08
  • 更新:2019-01-18 14:37
  • 阅读:2160

造轮子,拼音首字母的自动完成提示列表

分类:MUI

找了好久没找到,只好自己造轮子了,基于Mui 用popover 做的,谁能帮忙美化一下?

代码还没整理完,整理完了上源码,核心代码也很简单

start: function(event) {  
        if (this.handle_key(event)) {  
            return;  
        }  
        if (!this.ready) {  
            this.init();  
        }  
        this.deleteDIV();  
        this.search_value = this.obj.value.toUpperCase();  

        if (this.obj.value.replace(/(^\s*)|(\s*$)/g, '') == "") {  
            this.togglelist('hide');  
            return;  
        }   
        try {  
            var reg = new RegExp("(" + this.obj.value + ")", "i");  
        } catch (e) {  
            return;  
        }  
        var div_index = 0;  
        for (var i = 0; i < this.capital_arr.length; i++) {  
            if (reg.test(this.capital_arr[i])) {  
                var div = document.createElement("div");  
                div.innerText = this.value_arr[i];  
                //TODO: onclick  
                div.onclick = this.setValue(this);  
                //div.innerHTML=valueArr[i].replace(reg,"<strong>$1</strong>");  
                this.autoObj.appendChild(div);  
                div_index++;  
            }  
        }  
        if (div_index > 0) {  
//          console.log(div_index)  
            this.togglelist('show');  
        }  
    },

拼音部分有Unicode码表,查表得到

2015-11-23 16:08 负责人:无 分享
已邀请:
上扬

上扬

最近正需要这个,请问可以发一份源码给我吗?邮箱:atking@qq.com,谢谢

Mirror

Mirror

好东西赞一个。。。开源么

最佳方案

最佳方案

最近的一个项目,由于手机屏幕小的特性,输入不如在电脑上用键盘打字一般流畅,所以很多用户会偷懒,直接输入拼音、拼音首字母、某个词汇去进行搜索,那么在这种情况下,就需要系统对用户的搜索行为进行分析,猜想用户最想搜索的是什么?最后将最符合用户需要的结果展现在用户面前。这就要求系统能快速响应用户的搜索需求,将拼音转换成相应的汉字词组去数据库检索相关的对象信息,将搜索结果展现给用户,同时还发现,不同的用户对用同一个词条(标题)的提示排序顺序,有不同要求,
比如用户输入jd,高校图书馆用户希望《基督山伯爵》排在前面,《京东疯狂大减价》(我YY的)排在后面,如果是电商用户,恐怕正好相反,对电商而言,不同销售季节,希望搜索提示出词条的排序也是不同的。
我发现在网上找个关于搜索框(input标签)自动提示的JS插件很容易,一大堆供你挑选,但是,要想实现拼音、拼音首字母匹配、模糊匹配、智能容错、自定义提示词条自主排序等等这些功能,是非常琐碎非常麻烦的,更麻烦的是,我的数据在50万条左右,要想前端用户输入之后有较快(延时小于100ms)的响应,还需要在前端加一层cache,memocache 、redis试了个遍。
网上的智能提示JS插件,都仅仅是一个前端界面,要实现自动补全,困难的是后端实现
项目做完后我在想,是否可以做一个JS插件,把前面提到那些功能都封装起来,放在一台云服务器上,开发者每次需要使用
自动补全这个功能时,只需准备好要提示的词条列表或者标题列表,及其排序的优先级,向云服务器提交这些数据,
服务自动生成前面提到的各种索引(前缀、拼音、容错),并且自动分发到一个cache中,开发者只需在自己的H5页面中引用一行JS,
就可以通过跨域的方式使用自动提示的数据了,不再需要配置什么数据库,也不需要写一行后台的java/php代码
项目网址 www.92find.com 可以免费用啊

e***@163.com

e***@163.com

说好的DEMO附件呢?

付帅

付帅

不是有吗

该问题目前已经被锁定, 无法添加新回复