js实现模糊查询

js实现模糊查询1、简述实现模糊查询方法有很多种,后端可以实现,前端使用js也可以实现。后端实现起来需要根据输入框中搜索的关键字,去后台拼接SQL语句查询。前端直接使用字符串的indexOf()方法或者正则表达式匹配实现,相比后端实现这种方法的用户体验更友好。2、demo当输入框中输入内容或者点击查询按钮时,根据输入框中的关键字,模糊查询下面表格的内容,并重新渲染表格。代码如下。(1)…

大家好,又见面了,我是你们的朋友全栈君。

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 = '';   
            if(list.length==0){
              this.searchShow.innerHTML='未查询到关键字相关结果';
              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

如果对您有帮助的话,记得帮我star(ღ( ´・ᴗ・` ))

☞日益努力,而后风生水起。众生皆苦,你也不能认输!!! 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139221.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue 加载页面时触发时间_Vue 刷新页面时会触发事件吗「建议收藏」

    vue 加载页面时触发时间_Vue 刷新页面时会触发事件吗「建议收藏」使用localstorage做本地存储,然后我想在刷新页面或者离开页面的调用localstorage方法1、页面刷新使用localstorage,也就是当vue被实例化之后有如下几个可以供你使用:exportdefault{beforecreate(){//创建前状态}created(){//创建完毕状态}beforeMount(){//挂载前状态}mounted(){//…

    2022年8月31日
    7
  • 七、hibernate中的持久层模板操作HibernateTemplate的用法「建议收藏」

    七、hibernate中的持久层模板操作HibernateTemplate的用法「建议收藏」利用模板操作来替换掉持久层的session,必须先将spring和hibernate之间进行整合,整合的applicationContext配置文件介绍在:https://blog.csdn.net/IT_CREATE/article/details/86141823 那么在持久层的代码就如下面这样写:1、对于增删改(和session的操作差不多,也有save、update、del…

    2022年6月17日
    35
  • 09_java访问Hadoop的HDFS

    09_java访问Hadoop的HDFS

    2021年8月23日
    53
  • 理解图像卷积操作的意义

    理解图像卷积操作的意义数字信号处理中卷积卷积一词最开始出现在信号与线性系统中,信号与线性系统中讨论的就是信号经过一个线性系统以后发生的变化。由于现实情况中常常是一个信号前一时刻的输出影响着这一时刻的输出,所在一般利用系统的单位响应与系统的输入求卷积,以求得系统的输出信号(当然要求这个系统是线性时不变的)。卷积的定义:卷积是两个变量在某范围内相乘后求和的结果。如果卷积的变量是序列x(n)和h(n),则…

    2022年5月28日
    42
  • 查看端口是否占用 linux_打开vnc端口

    查看端口是否占用 linux_打开vnc端口准备使用python写一个端口探测的Linux如何查看端口1、lsof-i:端口号用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof-i:8000#lsof-i:8000COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMElwfs22065root6uIPv443950530…

    2022年7月27日
    18
  • 四款常见数据库比较同步软件汇总

    下载网站:www.SyncNavigator.CN  客服QQ1793040———————————————————-  关于HKROnlineSyncNavigator注册机价格的问题HKROnlineSyncNavigator 8.4.1企业版数据同步软件自2009年第一个版本开发…

    2022年4月3日
    2.0K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号