替换2个其他人之间的所有符号

时间:2015-11-27 06:06:54

标签: javascript regex

我有一个数据库连接字符串,可以选择包含密码,该密码位于符号:@之间。

如何使用正则表达式将每个密码符号替换为#

P.S。我不想更改字符串的长度,只是为了替换密码符号。

1 个答案:

答案 0 :(得分:1)

您可以使用 replace()



var pas = 'ddd:hsjhjshdjhd@dddd:djhfjdfj@';

var res = pas.replace(/:(.+?)@/g, function(_, m) {
  var r = ':';
  for (i = 0; i < m.length; i++)
    r += '#';
  return r + '@';
});

document.write(res);
&#13;
&#13;
&#13; 更新:正如@Tushar建议您可以通过以下方法

来避免for循环

&#13;
&#13;
var str = 'ddd:hsjhjshdjhd@ddddSomethingElse';

// Add global flag `g` for more than one password
var res = str.replace(/:([^@]+)/, function(a, m) {
  return ':' + new Array(m.length + 1).join('#');
});

document.write(res);
&#13;
&#13;
&#13;