替换Json String

时间:2019-02-19 12:19:39

标签: javascript json

问题出在这里,如果我在字符串中找到密码元素,我想将密码值替换为“ **********”。

例如:字符串"{"element" : "test1", "password": "dfsdn653##"}"

应替换为

"{"element" : "test1", "password": "********"}"
//OR
"{"element" : "test1", "password": ""}"

我尝试使用正则表达式替换字符串,但是没有用。

4 个答案:

答案 0 :(得分:2)

您可以使用padStart

var a = { "element": "test1", "password": "dfsdn653##" }
a.password = "".padStart(a.password.length, '*')
console.log(JSON.stringify(a))

//Some fixed length to not give away the actual length

a.password = "".padStart(7, '*')
console.log(JSON.stringify(a))

答案 1 :(得分:0)

您可以使用JSON.parse()将其转换为对象,然后更改password。使用password.length和{{创建一个fill()*数组1}}。

join()

答案 2 :(得分:0)

如果使用类似这样的自定义函数,将字符串'············'显示为键入内容的长度,例如'I Like Pizza'

var toAsterisk = function(string) {
  var asterisks = "";
  for(var i = 0; i > string.length; i++) {
    asterisks = asterisks + "·"
  }
}

如果您将字符串显示为星号,但要添加到包含密码的其他字符串中,那么您将能够拥有隐藏的密码。

(希望这会有所帮助!)

答案 3 :(得分:0)

尝试一下:

var jsonStr = '{"element" : "test1", "password": "dfsdn653##"}';

var jsonObj = JSON.parse(jsonStr);

if (jsonObj.hasOwnProperty('password')) {
  var res = jsonObj.password.split('').map(elem => elem = '*').join('');
  jsonObj.password = res;
}

console.log(jsonObj);