我想比较网址的基本部分。如果我输入www.websitename.com
,如果我输入
http://www.websitename.com
https://www.websitename.com
websitename.com
http://www.websitename.com/filename
subdomain.websitename.com etc..
我该怎么做?
答案 0 :(得分:2)
如果您只是想比较两个网址是否具有相同的域,则可以使用正则表达式轻松编码。
javascript无法知道http://www.websitename.com/
和http://subdomain.websitename.com/
是否在没有实际获取内容并进行比较的情况下解析到相同的主机或内容,因为它完全取决于主机可以设置任何方式的实现,而不是javascript可以知道的内容。
这是一个从URL获取域名的函数:
function getDomain(url) {
var prefix = /^https?:\/\//i;
var domain = /^[^\/:]+/;
// remove any prefix
url = url.replace(prefix, "");
// assume any URL that starts with a / is on the current page's domain
if (url.charAt(0) === "/") {
url = window.location.hostname + url;
}
// now extract just the domain
var match = url.match(domain);
if (match) {
return(match[0]);
}
return(null);
}
您可以在此处查看为每个网址返回的内容:http://jsfiddle.net/jfriend00/6YNgp/