我发现this SO帖子很接近,但我想稍微扩展这个问题。
我需要将每个字符(在一组正则表达式中)替换为星号。例如
Hello, my password is: SecurePassWord
=> Hello, my password is: **************
我有一个正则表达式可以将其抓取到组中,但我无法弄清楚如何应用此示例(来自链接):str.replace(/./g, '*');
是这样的:str.replace(/(Hello, my password is\: )(\w+)/g, '$1...');
其中...
将字符从$ 2转换为星号是神奇的。
答案 0 :(得分:1)
您可以使用replacement function String.prototype.replace
来获取匹配的文字和群组。
var input = 'Hello, my password is: SecurePassWord';
var regex = /(Hello, my password is: )(\w+)/;
var output = input.replace(regex, function(match, $1, $2) {
// $1: Hello, my password is:
// $2: SecurePassWord
// Replace every character in the password with asterisks
return $1 + $2.replace(/./g, '*');
});
console.log(output);
答案 1 :(得分:0)
也许如果你不特别需要正则表达式。
使用:
var password = "something";
你可以这样做:
var mystring = "My passsword is " + Array(password.length).join("*");
或者:
var mystring = "My passsword is " + password;
mystring = mystring.replace(password, Array(password.length).join("*"));