问题出在这里,如果我在字符串中找到密码元素,我想将密码值替换为“ **********”。
例如:字符串"{"element" : "test1", "password": "dfsdn653##"}"
应替换为
"{"element" : "test1", "password": "********"}"
//OR
"{"element" : "test1", "password": ""}"
我尝试使用正则表达式替换字符串,但是没有用。
答案 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);