我想用像 *** 这样的星号替换 MongoDB 连接字符串中的密码。所以,相反
mongodb://john:pwd897@some_url:234/database_name
应该是
mongodb://john:***@some_url:234/database_name
我正在尝试使用正则表达式来解析它:
^(mongodb:(?:\/{2})?)((\w+?):(\w+?)@|:?@?)(\w+?):(\d+)\/(\w+?)$
看来我需要更换 4 美元。但我不知道该怎么做。原因之一是字符串的某些部分可能不存在,包括密码本身。
最佳答案
已编辑,因此它可以使用包含 :
:
var str = "mongodb://john:lal:ala@some_url:234/database_name";
str = str.replace(/\/\/([^:]+):(.*)@/,"//$1:***@");
console.log(str); // <- mongodb://john:***@some_url:234/database_name
要为用户名和密码加注星号,您可以使用例如:
var str = "mongodb://john:lal:ala@some_url:234/database_name";
str = str.replace(/\/\/([^:]+):(.*)@/,"//***:***@");
console.log(str); // <- mongodb://***:***@some_url:234/database_name
或者只是:
var str = "mongodb://john:lal:ala@some_url:234/database_name";
str = str.replace(/\/\/.*@/,"//***:***@");
console.log(str); // <- mongodb://***:***@some_url:234/database_name
关于javascript - 如何用星号替换 MongoDB 连接字符串中的密码 - JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48157082/