js前端實現模糊查詢


對於模糊查詢,一般都是傳關鍵字給后端,由后端來做。但是有時候一些輕量級的列表前端來做可以減少ajax請求,在一定程度上提高用戶體驗。廢話不多說,直接上代碼。

//字符串方法indexOf
var len = list.length;
var arr = [];
for(var i=0;i<len;i++){
    //如果字符串中不包含目標字符會返回-1
    if(list[i].indexOf(keyWord)>=0){
        arr.push(list[i]);
    }
}
return arr;
//正則表達式
var len = list.length;
var arr = [];
var reg = new RegExp(keyWord);
for(var i=0;i<len;i++){
    //如果字符串中不包含目標字符會返回-1
    if(list[i].match(reg)){
        arr.push(list[i]);
    }
}
return arr;
 
        

首先要明白什么是模糊查詢(廢話又來了),就是根據關鍵字把列表中符合關鍵字的羅列出來(當然這里只做了最簡單的),也就是要檢查列表的每一項中是否含有關鍵字,因此抽象一下就是一個字符串中是否含有某個字符或者字符串。

有了思路,接下來就是去實現了,用什么方法呢,學js的基本數據類型時我們會發現String有很多方法,其中有個方法string.indexOf('');這個方法是找出字符串中某個字符的位置,而如果沒有目標字符會返回-1。所以我們可以用這個方法去檢查列表中每一項是否含有關鍵字。接下來就是很強大的RegExp,正則表達式去匹配字符串的目標字符,這里用了match方法,匹配不到返回空,當然其他幾個方法也有實現方式,此處不再羅列。

最后,demo地址:https://github.com/Stevenzwzhai/plugs,歡迎大家一起來寫插件,純原生js實現,star一下最好了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM