我不知道如何剥离所有内容,仅保留网站名称。
所以给定了:
var url = "https://www.example.it/wp-json/wp/v2/posts?per_page=50&status=publish";
我将如何获得“ example
”?
不熟悉正则表达式。
答案 0 :(得分:3)
检出URL对象:https://developer.mozilla.org/en-US/docs/Web/API/URL
var address = "https://www.example.it/wp-json/wp/v2/posts?per_page=50&status=publish";
var url = new URL(address);
var hostname = url.hostname;
var hostTokens = hostname.split('\.');
console.log(hostTokens[1]); // example
console.log({
hash : url.hash,
host : url.host,
hostname : url.hostname,
href : url.href,
origin : url.origin,
password : url.password,
pathname : url.pathname,
port : url.port,
protocol : url.protocol,
search : url.search,
username : url.username
});
.as-console-wrapper { top: 0; max-height: 100% !important; }
如果需要支持子域,则可以修改以下功能。
var addresses = [ 'https://www.example.it', 'https://mail.example.it' ];
addresses.forEach(address => console.log(parseDomain(address)));
function parseDomain(address) {
var url = new URL(address);
var hostTokens = url.hostname.split('\.');
var result = {
'Domain' : hostTokens[hostTokens.length - 2],
'Top-Level Domain' : hostTokens[hostTokens.length - 1]
};
if (hostTokens.length > 2 && hostTokens[0] !== 'www') {
result['Sub-Domain'] = hostTokens[0];
}
return result;
}
.as-console-wrapper { top: 0; max-height: 100% !important; }
答案 1 :(得分:1)
您可以使用URL和split()的组合而不使用 regex 来获得域,主机名将返回{{1 }},因此,如果我们在其上应用www.example.com
,它将使用.split('.')
返回一个数组['www','example','com']
,我仅使用 example 部分,希望它帮助:)
[1]
对于子域捕获,
var url = "https://www.example.it/wp-json/wp/v2/posts?per_page=50&status=publish";
var domain = (new URL(url)).hostname.split('.')[1]
console.log(domain)
答案 2 :(得分:1)
尝试一下;
function getSiteName() {
const fullUrlSplit = window.location.host.split(".");
if (fullUrlSplit[0] !== "www")
return fullUrlSplit[0];
return fullUrlSplit[1];
}
只要没有子域,这将起作用。