javascript - JS查询一组10位数字的前8位或者前6位是否匹配

查看:91
本文介绍了javascript - JS查询一组10位数字的前8位或者前6位是否匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

想实现一个功能,就是当用户在input输入10位数字后点击查询按钮后,去匹配json数据中的预输入值,并根据不同的信息反馈不同的查询结果。

然而json的预输入值只有8位或者6位(相对应10位数字的前8位或者前6位,匹配优先级是先8位后6位)。请教这个查询判断应该如何去做?谢谢!

json格式:

{"id":"123456","info":"这是普通用户"},
{"id":"87654321","info":"这是高级用户"}
{"id":"876543","info":"这是尊享用户"}

例如用户输入的是1234567890json数据中的预输入值有123456,则匹配这个预输入值的信息,如果用户输入的是0987654321json数据中的预输入值有09876509876543两个时,则匹配09876543的预输入值的信息。

PS:自己钻进了模糊查询的死胡同,有点绕不出来。。。

解决方案

var jsons = [
            {"id":"123456","info":"这是普通用户"},
            {"id":"876543","info":"这是尊享用户"},
            {"id":"87654321","info":"这是高级用户"},
            {"id":"87654311","info":"这是尊享用户"},
         ]    
    function f(jsons,num) {
        var num8 = num.substr(0,8);
        var num6 = num.substr(0,6);
        var result6 = '';
        var result8 = '';
    
          for(var i = 0,len = jsons.length; i < len;i++) {
              var id = jsons[i].id;
              if(id == num8) {
                  result8 = jsons[i];
                  break;
              }
    
              if(id == num6) {
                  result6 = jsons[i];
              }
           }
    
          return result8 ? result8 : result6; 
    }

这篇关于javascript - JS查询一组10位数字的前8位或者前6位是否匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆