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