Javascript 替换字符串中所有URL中的主机-nodejs
我有以下字符串:Javascript 替换字符串中所有URL中的主机-nodejs,javascript,regex,node.js,string,url,Javascript,Regex,Node.js,String,Url,我有以下字符串: { "auth" : { "login" : "http://123.123.11.22:85/auth/signin", "resetpass" : "http://123.123.22.33:85/auth/resetpass", "profile" : "http://123.123.33.44:85/auth/profile" } } 我需要用主机名替换所有IP地址以获得以下输出: { "auth" : {
{
"auth" : {
"login" : "http://123.123.11.22:85/auth/signin",
"resetpass" : "http://123.123.22.33:85/auth/resetpass",
"profile" : "http://123.123.33.44:85/auth/profile"
}
}
我需要用主机名替换所有IP地址以获得以下输出:
{
"auth" : {
"login" : "http://mydomain:85/auth/signin",
"resetpass" : "http://mydomain:85/auth/resetpass",
"profile" : "http://mydomain:85/auth/profile"
}
}
我可以将这个字符串转换为对象,遍历属性,拆分并重新连接以形成URL。我正在寻找使用regex实现这一点的最佳实践
我期待类似的事情
var newUrl = text.replace( /someRegex/gi, 'mydomain');
使用((?:\d+\){3}\d+(=:\d+)
并替换捕获的组将对您有效
差但短
JSON.parse(JSON.stringify(thatObject).replace(/someRegex/gi,'myDomain'))
我知道如何进行stringify。我需要那个正则表达式。谷歌搜索很有魅力。在我的例子中:var result=data.replace(/((?:\d+){3}\d+(=:\d+)/g,主机)代码>