Dictionary 使用通配符在多个array.fields中的JSON数据上添加$.grep?

Dictionary 使用通配符在多个array.fields中的JSON数据上添加$.grep?,dictionary,filter,grep,wildcard,Dictionary,Filter,Grep,Wildcard,首先,我查看了类似的问题,但没有找到所问或回答的确切问题,因此: 我有一个JSON对象,它由大约900多篇文章组成。看起来像这样: var JsonData = [{"rowNumber":563663,"hasWarning":true,"isInvoiceAccount":true,"phone":"","name":"Romerike AS","address1":"Co/Skanning","address2":"PB 52","attention":"","mobile":"","e

首先,我查看了类似的问题,但没有找到所问或回答的确切问题,因此:

我有一个JSON对象,它由大约900多篇文章组成。看起来像这样:

 var JsonData = [{"rowNumber":563663,"hasWarning":true,"isInvoiceAccount":true,"phone":"","name":"Romerike AS","address1":"Co/Skanning","address2":"PB 52","attention":"","mobile":"","email":"fakt@bos.no","fax":"","zipCity":"N-1471 Askim","invoiceAccount":"","notes":null,"account":"3","country":"NORGE","salesRep":"4","countryCode":"no"},{"rowNumber":563674,"hasWarning":false,"isInvoiceAccount":true,"phone":"","name":"LILLEHAMMER","address1":"POSTBOKS 110","address2":"","attention":"","mobile":"","email":"","fax":"","zipCity":"N-2605 LILLEHAMMER","invoiceAccount":"","notes":null,"account":"14","country":"NORGE","salesRep":"4","countryCode":"no"},{"rowNumber":563676,"hasWarning":true,"isInvoiceAccount":true,"phone":"63929788","name":"Askim Bil AS","address1":"Postboks 82","address2":"","attention":"","mobile":"","email":"karosseri@nyg.no","fax":"","zipCity":"N-2051 Askim","invoiceAccount":"","notes":null,"account":"16","country":"NORGE","salesRep":"4","countryCode":"no"},{"rowNumber":563686,"hasWarning":false,"isInvoiceAccount":true,"phone":"69826060","name":"KAROSSERI A/S","address1":"POSTBOKS 165","address2":"","attention":"","mobile":"","email":"tkar@online.no","fax":"","zipCity":"N-1860  TRØGSTAD","invoiceAccount":"","notes":null,"account":"26","country":"NORGE","salesRep":"4","countryCode":"no"},{"rowNumber":563690,"hasWarning":false,"isInvoiceAccount":true,"phone":"","name":"AUTOSERVICE A/S","address1":"POSTBOKS 15","address2":"","attention":"","mobile":"","email":"","fax":"","zipCity":"N-2851  LENA","invoiceAccount":"","notes":null,"account":"30","country":"NORGE","salesRep":"4","countryCode":"no"},{"rowNumber":563691,"hasWarning":false,"isInvoiceAccount":false,"phone":"","name":"ØYHUS A/S","address1":"POSTBOKS 321","address2":"","attention":"John Doe","mobile":"","email":"","fax":"","zipCity":"N-2817  GJØVIK","invoiceAccount":"","notes":null,"account":"31","country":"NORGE","salesRep":"4","countryCode":"no"}];
我想先过滤这些数据,然后再使用$.grep将它们读入表中。 JSON数据已作为对象加载。 在HTML页面中,我有一个名为“filter”的文本字段。 以下代码有效,但仅当我搜索精确匹配时有效:

 var JsonFiltered = $.grep(JsonData, function (element, index) {
        return element.zipCity == $('#filter').val();
    });

  $.each( JsonFiltered, function ( index, value ) {
     // sorting through the array adding values to a table
    [...]
  });
问题1: 我想在筛选时使用通配符。 我读了一些关于使用regexp的书,但还没有找到任何可行的例子

问题2: 我希望能够过滤多个列。
示例:过滤element.name和element.zipCity中的“Askim”一词,因此我自己找到了解决方案

使用通配符:

        var search_term = $('#filter').val();
        var search = new RegExp(search_term, "i");

        var JsonFiltered = $.grep(JsonTest, function (element, index) {

        var zipC = search.test(element.zipCity) 
        var names = search.test(element.name)
        return zipC + names ;
解决方案是将“newregexp”与过滤器“i”设置一起使用。 然后我做了两个search.tests,将它们组合在return命令中,然后。。。普雷斯托

希望这对其他人有帮助