搜索JSON文件以获取完全匹配

时间:2015-11-20 21:06:04

标签: jquery json ajax

我有一个搜索我的.json文件的jQuery函数。但是,因为这个文件将有超过100,000条记录,我只想返回完全匹配。有人可以说明我如何更改当前代码以实现此目的吗?

$(window).load(function(){
    $('#submit').on('click', function(){

        var searchField = $('#search').val();
        var regex = new RegExp(searchField, "i");
        var output = '<div class="row">';
        var count = 1;
        $.getJSON('myjson.json', function(data) {
          $.each(data, function(key, val){
            if ((val.merchantID.search(regex) != -1) || (val.accountName.search(regex) != -1)) {
              output += '<div class="dataContain">';
              output += '<p><span style="font-weight:bold;">Account Name: </span>'+val.accountName + '</p><p><span style="font-weight:bold;">EMV Status: </span><span class="status">' + val.status +'<span class="circle"></span></span></p>';
              output += '</div>';

              if(count%2 == 0){
                output += '</div><div class="row">'
              }
              count++;
            }
          });
          output += '</div>';
          //$('#results').toggle();
          $('#results').html(output);

        });
        setTimeout(function() {
        $('span.status:contains("Red")').addClass('red');
        $('span.status:contains("Green")').addClass('green');
        $('span.status:contains("Yellow")').addClass('yellow');
        console.log('this function is running.'); 
         }, 100);
    });

  });

1 个答案:

答案 0 :(得分:0)

如果您要在字符串中查找匹配项,则可以使用=== comparison operator进行精确的字符串比较,或使用.indexOf进行完全匹配,但如果可能,我会建议您使用数据库或服务器端语言来搜索您的json。您的搜索正在运行客户端,这取决于您的用户硬件和浏览器可能需要很长时间。如果没有其他选择,请不要忘记使用加载.gif或显示进度,以便您的网页似乎没有响应。

&#13;
&#13;
'This is my test string'.indexOf('test');
//outputs 11

'This is my test string'.indexOf('testi')
// outputs -1

'This is my test string'.indexOf('TEST')
// outputs -1
&#13;
&#13;
&#13;