正则表达式可从JSON对象中剥离敏感信息

时间:2018-07-25 15:16:08

标签: regex

我有一个类似下面的JSON对象,我想使用正则表达式从中删除敏感信息,例如密码,手机号码等。

示例JSON

{
   "username":"abc",
   "password":"xyz123",
   "Security":{
      "SecurityQuestion":"what is your first pet name",
      "SecurityAnswer": "snoopy"
   }
}

我想从上面的JSON对象中删除敏感信息,例如“ password”和“ SecurityAnswer”。我尝试了各种正则表达式模式,但它只删除了任何一项。

我需要有关如何构造正则表达式的帮助或指导,在该正则表达式中,我可以在表达式中包括任何名称,然后将这些字段从JSON中剥离。

预期输出:

{
   "username":"abc",
   "Security":{
      "SecurityQuestion":"what is your first pet name"
   }
}

注意:如果密码是最后一个属性,则表达式也应能够从前一个属性中删除逗号(,)。

我尝试了Regex remove json property中的表达式,并进行了各种组合,但没有一个符合我的要求。

1 个答案:

答案 0 :(得分:1)

如果要从JSON获取值,则无需使用正则表达式并生成非常复杂的正则表达式。

var data = {
  "username":"abc",
  "password":"xyz123",
  "Security":{
  "SecurityQuestion":"what is your first pet name",
  "SecurityAnswer": "snoopy"
   }
}

这就是您的对象,现在,如果您要检索数据,只需将其视为json。

function retrieveData( Obj ) {
    return {
      username: Obj.username,
      Security:{
         SecurityQuestion: Obj.Security.SecurityQuestion
       }
    }
}

var extractedData = retrieveData(data);