recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - JS demande si les 8 ou 6 premiers chiffres d'un ensemble de 10 chiffres correspondent

Je souhaite implémenter une fonction, c'est-à-dire lorsque l'utilisateur pré-saisit une valeur dans les input输入10位数字后点击查询按钮后,去匹配jsondata et renvoie différents résultats de requête en fonction de différentes informations.

Cependant, la valeur de saisie anticipée de json n'est que de 8 ou 6 chiffres (correspondant aux 8 ou 6 premiers chiffres d'un numéro à 10 chiffres, la priorité de correspondance est de 8 chiffres en premier et 6 chiffres plus tard). S'il vous plaît dites-moi comment porter ce jugement de requête ? Merci!

jsonFormat :

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

Par exemple, la saisie utilisateur est 12345678901234567890json数据中的预输入值有123456,则匹配这个预输入值的信息,如果用户输入的是0987654321json数据中的预输入值有09876509876543两个时,则匹配09876543, et la valeur de pré-saisie dans les data est

123456

, puis les informations qui correspondent à cette pré-saisie valeur, si la saisie utilisateur est PS:0987654321

, 🎜Lorsque les valeurs de pré-saisie dans les données sont 🎜098765🎜 et 🎜09876543🎜, cela correspond à 🎜 Informations sur la valeur pré-saisie de 09876543🎜. 🎜 🎜🎜Je suis tombé dans une impasse de requêtes floues et je n’arrive pas à m’en sortir. . . 🎜
phpcn_u1582phpcn_u15822788 Il y a quelques jours617

répondre à tous(3)je répondrai

  • 为情所困

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

    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; 
        }

    répondre
    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))

    C'est très ennuyeux. Vous devez parcourir toutes les données, alors laissez l'arrière-plan le faire

    .

    répondre
    0
  • 过去多啦不再A梦

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

    先处理一下json
    var jsonObj={};
    json.forEach((x)=>{jsonObj[x.id]=x});
    function checkFn(val){
         var val8=val.slice(0,8);
            var val6=val.slice(0,6)
            if(jsonObj[val8]){
               //匹配到8位
            }else if(jsonObj[val6]){
                //匹配到6位)
            }else{
                //无匹配
            }
    }
       

    répondre
    0
  • Annulerrépondre