首頁  >  問答  >  主體

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:自己鑽進了模糊查詢的死胡同,有點繞不出來。 。 。

phpcn_u1582phpcn_u15822730 天前553

全部回覆(3)我來回復

  • 为情所困

    为情所困2017-05-19 10:47:33

    雷雷

    回覆
    0
  • 怪我咯

    怪我咯2017-05-19 10:47:33

    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))

    很坑爹.要遍歷所有資料,這種事還是讓後台做吧.

    回覆
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:47:33

    雷雷

    回覆
    0
  • 取消回覆