javascript - JS查询一组10位数字的前8位或者前6位是否匹配
phpcn_u1582
phpcn_u1582 2017-05-19 10:45:33
0
3
605

想实现一个功能,就是当用户在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:自己钻进了模糊查询的死胡同,有点绕不出来。。。

phpcn_u1582
phpcn_u1582

全部回复(3)
为情所困

雷雷

刘奇
var json = [{'id': '123456','info': '这是普通用户'},
  {'id': '87654321','info': '这是高级用户'},
  { 'id': '876543', 'info': '这是尊享用户' }]

var value = '8765432151'
function slice (value, wei) {
  var temp = [].slice.call(value, 0, wei)
  temp = temp.join('')
  return temp
}

function match (userid, data) {
  var id6 = slice(userid, 6)
  var id8 = slice(userid, 8)
  for (var i = 0; i < json.length; i++) {
      // console.log(json[i])    
      console.log(slice(json[i].id, 8),id8)
    if (slice(json[i].id, 8) == id8||slice(json[i].id, 6) == id6) {
      var info = json[i].info
      info = slice(json[i].id, 6) === id6 ? json[i].info : info
      return info;
    }
  }
  
}

console.log(match(value, json))

很坑爹.要遍历所有数据,这种事还是让后台做吧.

过去多啦不再A梦

雷雷

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板