Javascript java脚本中访问映射的正则表达式

Javascript java脚本中访问映射的正则表达式,javascript,regex,Javascript,Regex,如何获取某些特定图案的行 var list = { kk_list_name : "jack", kk_list_no : "123", kk_first_name :"Reck", kk_first_no : "5555" } 这里我想要一张以kk_列表开头的地图 我试过这样的东西,显然不起作用 您可以尝试以下方法: function filterArray( list, regex ) { var outputArray = {}; for( var key in

如何获取某些特定图案的行

var list = {
 kk_list_name : "jack",
 kk_list_no : "123",
 kk_first_name :"Reck",
 kk_first_no : "5555"
}
这里我想要一张以kk_列表开头的地图
我试过这样的东西,显然不起作用


您可以尝试以下方法:

function filterArray( list, regex )
{
    var outputArray = {};

    for( var key in list )
    {
        if( key.match( regex ) )
        {
            outputArray[key] = list[key];
        }
    }

    return outputArray;
}

var list = {
 kk_list_name : "jack",
 kk_list_no : "123",
 kk_first_name :"Reck",
 kk_first_no : "5555"
}

console.log( filterArray( list, /kk_list_\w+/ ) );

它使用一个函数来过滤数组,并使用regex选择的键创建一个新的数组。

您可以使用以下方法将对象简化为一个只包含与指定regex匹配的键的数组:

Object.prototype.reduce = function(regex) {
    var newObj = {}, x;
    for(x in this) if(this.hasOwnProperty(x) && (!regex || regex.test(x))) newObj[x] = this[x];
    return newObj;
};

然后将其称为
list.reduce(/\u first.$/)
=>
对象{kk\u first\u name:“Reck”,kk\u first\u no:“5555”}
您可以使用以下代码:

var list = {
 kk_list_name : "jack",
 kk_list_no : "123",
 kk_first_name :"Reck",
 kk_first_no : "5555"
}

var line=JSON.stringify(list);

var ar=line.match(/(kk_list[^" :]*)/g)

ar.forEach(function(val){
                    console.log(eval("list."+val));
});
输出

jack  
123 
jack  
123