js如何实现模糊查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js如何实现模糊查询相关的知识,希望对你有一定的参考价值。
就是类似于百度输入框那样,输入关键字,底下带出多条信息
这是自动完成功能思路:
当你输入一个字符之后(这个可以你自己定义变量来约束,随便几个),通过AJAX访问后台,查询到所有结果包含你输入的字符的一个结果集 然后再返回给前端 当然你可以在后台封装好(即拼接hmtl代码和结果) 将返回的结果放到文本框下面的那个DIV里面 显示出来 就OK了
具体代码不难 如果你是程序员 告诉你思路应该就可以实现了 参考技术A 对于模糊查询T-SQL有四个通配符
%:包含0个或多个字符
_:匹配指定;
[]:指定范围
[^]:排除范围
对于稍复杂点的关键词搜索(比如新闻),常用的办法是在数据库中添加一个keyword字段,来配合通配符进行模糊查询或分类查询或热门关键字查询。关于复杂点的模糊查询,更好的方法是不用这些通配符来实现,而是通过js来实现(例如输入时产生搜索提示),或其他方法来作,思路是尽量少的对数据库进行操作。
- 官方服务
- 官方网站官方网站
有没有类似的例子参考一下
vue 如何实现 Input 输入框模糊查询方法
原理:原生js的indexOf() 方法,该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。
如果在数组中没找到指定元素则返回 -1。
下面先看示例:
搜索前:
搜索后:
实现方法:
1 methods:{ 2 // 点击搜索工程 3 search(){ 4 // 支持模糊查询 5 // this.xmgcqkJsonsData:用于搜索的总数据 6 // toLowerCase():用于把字符串转为小写,让模糊查询更加清晰 7 let _search = this.jobNo.toLowerCase(); 8 let newListData = []; // 用于存放搜索出来数据的新数组 9 if (_search) { 10 this.xmgcqkJsonsData.filter(item => { 11 if (item.code.toLowerCase().indexOf(_search) !== -1) { 12 newListData.push(item); 13 } 14 }) 15 } 16 this.xmgcqkJsonsData = newListData; 17 // console.log(‘新数组’,newListData) 18 }, 19 }
以上方法是根据 工单号/流水号 进行查询的,如果在当前基础上增加对其它条件的搜索,比如 项目/工程名称,那只需要在原来的代码上增加一个判断条件即可,如:
1 if (item.code.toLowerCase().indexOf(_search) !== -1 || item.name.toLowerCase().indexOf(_search) !== -1) { 2 newListData.push(item); 3 }
这就是如何实现vue input输入框模糊查询的方法。
版权声明:本文为博主原创文章,转载需注明出处。https://www.cnblogs.com/silent007/p/10238112.html
*************************************** END ***************************************
以上是关于js如何实现模糊查询的主要内容,如果未能解决你的问题,请参考以下文章