json替换nodejs中的所有$ regex

时间:2018-07-19 14:25:54

标签: javascript node.js

我有json说

var json= { name: { '$regex': /^Amer$/i }, 'countries.name': { '$regex': /^UNited states$/i } }

我想通过使用lodash或string / json替换使其像下面一样

json= { "name": "Amer" , "countries.name": "UNited states" }

2 个答案:

答案 0 :(得分:2)

如果RegExps始终具有相同的锚点(^$),则可以采用以下方法:

var json= { name: { '$regex': /^Amer$/i }, 'countries.name': { '$regex': /^UNited states$/i } }

Object.entries(json).forEach(([k, v]) => {
  json[k] = v.$regex.source.slice(1, -1);
})

console.log(json);

答案 1 :(得分:0)

var data = { name: { '$regex': /^Amer$/i }, 'countries.name': { '$regex': /^UNited states$/i } };

for(var key in data){
 var value = data[key]['$regex'];
 data[key] = value.source.slice(1, -1)
}

console.log(data);