How to replace the host part of a URL using javascript regex. This can be any kind of URL with or without http. Assume this text is from the content of a json file.
OldText:
{
"auth" : {
"login" : "http://local.example.com:85/auth/signin",
"resetpass" : "http://local.example.com:85/auth/resetpass",
"profile" : "http://local.example.com/auth/profile"
}
}
Expecting a solution like:
var NewText = OldText.replace (/(some regex)/g, 'example.com');
To get NewText as:
{
"auth" : {
"login" : "http://example.com:85/auth/signin",
"resetpass" : "http://example.com:85/auth/resetpass",
"profile" : "http://example.com/auth/profile"
}
}
I found the same here , but that regex won't work in javascript.
Note: I'm looking for the Regex.
You can use the URL function and set a new hostname:
var oldUrl = "http://host1.dev.local:8000/one/two";
var url = new URL(oldUrl);
url.hostname = 'example.com';
url.href //'http://example.com:8080/one/two'
This could be achieved easily using:
var NewText = OldText.replace (/(https?:\/\/)(.*?)(:*)/g, '$1' + 'example.com' + '$3');
You are welcome to modify this with the best practice.
I think this is completely doable using regex. Here's a small snippet for you, let me know if you want to add something else to it.
var urls = [ { url: "http://local.something.com:85/auth/signin" }, { url: "local.anything.com/auth/profile" } ]; for(var i in urls) { var newUrl = urls[i].url.replace(/(http:|)(^|\\/\\/)(.*?\\/)/g, 'https://example.com/'); console.log(newUrl); }
I am assuming, from
without http
, you mean something like 'google.com'
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.