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