javascript - 替换另外 2 个符号之间的所有符号

标签 javascript regex

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

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

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

最佳答案

您可以使用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);
<小时/> 更新:正如@Tushar建议的,您可以通过以下方法避免for循环

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);

关于javascript - 替换另外 2 个符号之间的所有符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33951181/

相关文章:

javascript - 有没有办法将 'pretty' 打印 MongoDB shell 输出到文件?

javascript - 将 JSP Java 代码添加到 HTML 中的占位符属性

java正则表达式查找具有特殊字符的精确单词

javascript - 这个嵌套对象创建器函数的 lodash 等价物是什么?

javascript - 无法在 html dom 中选择 id 或 class

javascript - 如何从 Mapbox GL JS 中的样式层获取特征?

php - 用 PHP(和正则表达式)替换 anchor 文本

regex - 在重复结构中使用正则表达式反向引用 ({N})

Python 相当于 'grep -C N' ?

php - 查找分隔符之间的所有匹配项