我必须从url原点提取特定部分。但我似乎想不出一个好的、防故障的方法来做这个
例如,这是我的网址:http://site.domain.com
我需要知道使用了什么"域"。如何在100%的时间内从url中获取此部分?
我的第一个想法是把它分成"。",但后来我想如果有人使用http://www.site.domain.com链接这意味着它不会起作用。
进一步解释:
我目前有两个网站都有不同的域名。我必须根据url中的"域名"获得加载页面的信息。
谢谢!
在点上拆分完整域名,然后在最后一个元素之前取元素。
var url = 'http://www.site.domain.com';
var array = url.split(".");
var lengthOfArray = array.length;
var domain = array[lengthOfArray-2];
console.log(domain);
使用split("/")
:按/
拆分
function getDomain(url){
var arr = url.split(".");
return arr[arr.length - 2];
}
console.log(getDomain('http://site.domain.com'));
console.log(getDomain('http://www.site.domain.com'));
您可以通过"."
将其拆分,并获得字符串的倒数第二个文本。
var str = 'http://www.site.domain.com';
var domain = str.split('.');
console.log(domain[domain.length-2]);
后期编辑
为了提供进一步的防故障功能,您可以获取.com和它前面的第一个点之间的最新文本。如果您的URL中有另一个点,例如:'http://www.site.domain.com/post/test.asp'
,这将起作用。
var str = 'http://www.site.domain.com/post/test.asp';
var preComLink = str.substr(0, str.indexOf('.com'));
var preDomainIndex = preComLink.lastIndexOf('.');
var domain = preComLink.substr(preDomainIndex + 1, str.indexOf('com'));
console.log(domain);
let code = (function(){
return{
getDomain: function(url){
var slpitDomainURL = url.split(".");
var lengthOfArray = slpitDomainURL.length;
var domain = slpitDomainURL[lengthOfArray-2];
return domain;
}
}
})();
console.log(code.getDomain('http://www.google.com'));
console.log(code.getDomain('http://www.facebook.com'));