将URL作为字符串,如何仅提取域和扩展名?

时间:2012-02-20 00:17:41

标签: javascript jquery regex

给定一个包含以下格式的URL的字符串:

https://www.cnn.com/
http://www.cnn.com/
http://www.cnn.com/2012/02/16/world/american-nicaragua-prison/index.html
http://edition.cnn.com/?hpt=ed_Intl
W JS / jQuery,如何从cnn.com中提取所有字符串?顶级域名加扩展?

由于

5 个答案:

答案 0 :(得分:3)

​var loc = document.createElement('a');

loc.href = 'http://www.cnn.com/2012/02/16/world/index.html';

​window.alert(loc.hostname);​ // alerts "cnn.com"

以前方法的致谢:

Creating a new Location object in javascript

答案 1 :(得分:0)

var domain = location.host.split('.').slice(-2);

如果你想重新组装:

var domain = location.host.split('.').slice(-2).join('.');

但这不适用于co.uk或其他什么。对此没有硬性或快速的规则,即使正则表达式也无法确定。

答案 2 :(得分:0)

鉴于存在带有点的顶级域名,例如“co.uk”,除非您包含其中包含点的所有顶级域名列表,否则无法以编程方式执行此操作。

答案 3 :(得分:0)

function domain(input){
    var matches,
        output = "",
        urls = /\w+:\/\/([\w|\.]+)/;

    matches = urls.exec(input);

    if(matches !== null){
        output = matches[1];
    }

    return output;
}

答案 4 :(得分:-1)

// something.domain.com -> domain.com
function getDomain() {
  return window.location.hostname.replace(/([a-z]+.)/,"");
}