首頁 >web前端 >js教程 >實例詳解js如何實現模糊查詢

實例詳解js如何實現模糊查詢

零到壹度
零到壹度原創
2018-03-29 17:13:245916瀏覽

本文主要為大家分享一個實例詳解js如何實現模糊查詢的解決方法,具有很好的參考價值,希望對大家有幫助。一起跟著小編過來看看吧。

1、簡述

實作模糊查詢方法有很多種,後端可以實現,前端使用js也可以實現。

後端實作需要依照輸入框中搜尋的關鍵字,到後台拼接SQL語句查詢。

前端直接使用字串的indexOf()方法或正規表示式匹配實現,相較於後端實現這種方法的使用者體驗更友善。

2、demo

當輸入框中輸入內容或點擊查詢按鈕時,
根據輸入框中的關鍵字,模糊查詢下面表格的內容,並重新渲染表格。
程式碼如下。

(1)javascript程式碼:

let listData = ["上海市","黄浦区","卢湾区","徐汇区","长宁区","静安区","普陀区",
  "闸北区","杨浦区","虹口区","闵行区","宝山区","嘉定区","浦东新区",
  "金山区","松江区","青浦区","南汇区","奉贤区","崇明县" ];
  
function Fuzzysearch(listData){
  this.listData = listData,//请求得到的数据
  this.searchKey = document.getElementById('searchKey'),//查询关键字
  this.searchBtn = document.getElementById('searchBtn'),//查询按钮
  this.searchShow = document.getElementById('searchShow')//显示查询结果的表格
 
  this.renderTab(this.listData);
  this.init();
}
Fuzzysearch.prototype={
      init :function(){
        let _this = this;
          //键入触发事件
        _this.searchKey.onkeyup=function(){
            let searchResult = _this.searchFn();
            _this.renderTab(searchResult);
        };
      //点击查询按钮触发事件
        _this.searchBtn.onclick=function(){
            let searchResult = _this.searchFn();
            _this.renderTab(searchResult);
        };
      },
      searchFn:function(){
        var keyWord = this.searchKey.value;
        var len = this.listData.length;
        var arr = [];
        var reg = new RegExp(keyWord);
        for(var i=0;i<len;i++){
            //如果字符串中不包含目标字符会返回-1
            if(this.listData[i].match(reg)){
                arr.push(listData[i]);
            }
        }
        return arr;
      }
      ,renderTab:function(list){
            let colStr = &#39;&#39;;   
            if(list.length==0){
              this.searchShow.innerHTML=&#39;未查询到关键字相关结果&#39;;
              return;
            }      
            for(var i=0,len=list.length;i<len;i++){
              colStr+="<tr><td>"+list[i]+"</td></tr>";
            }
            this.searchShow.innerHTML = colStr;
      }
}
 new Fuzzysearch(listData);

3、原始碼下載

https://github.com/lemonYU/fuzzySearch# fuzzysearch


#相關推薦:

如何實作模糊查詢結果

js前端實作模糊查詢

#jQuery實作的模糊查詢

#

以上是實例詳解js如何實現模糊查詢的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn