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;

首先要明白什么是模糊查询(废话又来了),就是根据关键字把列表中符合关键字的罗列出来(固然这里只作了最简单的),也就是要检查列表的每一项中是否含有关键字,所以抽象一下就是一个字符串中是否含有某个字符或者字符串。git

有了思路,接下来就是去实现了,用什么方法呢,学js的基本数据类型时咱们会发现String有不少方法,其中有个方法string.indexOf('');这个方法是找出字符串中某个字符的位置,而若是没有目标字符会返回-1。因此咱们能够用这个方法去检查列表中每一项是否含有关键字。接下来就是很强大的RegExp,正则表达式去匹配字符串的目标字符,这里用了match方法,匹配不到返回空,固然其余几个方法也有实现方式,此处再也不罗列。github

最后,demo地址:https://github.com/Stevenzwzhai/plugs,欢迎你们一块儿来写插件,纯原生js实现,star一下最好了!ajax

相关文章
相关标签/搜索