是否有一种优雅的方法可以将主机名/域转换为有效的http url,如:example.com
到https://example.com
?
我目前的做法是:
const domainToURL = (domain: string) => {
if (!domain.startsWith('http')) domain= `https://${domain}`;
return new URL('/', domain).origin;
};
我相信还有更强大的东西。
这就是我所使用的:创建一个伪URL
对象,更改.hostname
属性,然后读取.href
属性。像这样:
function hostnameToURL(hostname) {
// the inital value of the URL object can be anything
const url = new URL("https://example.com");
url.hostname = hostname;
return url.href;
}
console.log(hostnameToURL("google.com"));
console.log(hostnameToURL("a.fun.website.com"));
console.log(hostnameToURL("example.com"));
如果你需要接受更多的参数(比如指定HTTP或HTTPS(,你可以很容易地调整函数。我发现这种方法更好,因为你把所有的工作都交给了浏览器。