2015-03-31 37 views
1

頂級域名我想從字符串如頂級域名:的Javascript得到的字符串

domain.com -> domain.com 
subdomain.domain.com -> domain.com 
subdomain.domain.co.uk -> domain.co.uk 

具備以下功能至今:

function gdn(h) { 
    return h.substring(h.lastIndexOf(".", h.lastIndexOf(".") - 1) + 1); 
} 

問題是,這不符合工作co.uk域。對於返回:

hello.domain.co.uk -> co.uk 

希望它是domain.co.uk

任何想法?

+0

,您可以檢查 「域」 的最後一個索引.. ??? – 2015-03-31 12:29:30

+0

除非您知道域名,子域名或目標'co.uk'等,否則無法知道'subdomain.domain.com'和'domain.co.uk'之間的區別,它們在技術上與原來相同以數字和期間的位置等 – adeneo 2015-03-31 12:36:31

+0

[如何從JavaScript中獲取頂級域名(基本域)]的可能重複(http://stackoverflow.com/questions/6449340/how-to-get-top- level-domain-base-domain-from-the-url-in-javascript) – Abhishek 2015-03-31 12:40:22

回答

-2
function parseDomain(url) { 
    var elts = url.split('.'); 
    var offset = 2; 
    if(elts[elts.length-2] == 'co') { 
    offset = 3 
    } 
    return elts.slice(elts.length-offset, elts.length).join('.') 
} 

var url = "subdomain.domain.co.uk" 
console.log(parseDomain(url)) 
var url2 = "subdomain.domain.com" 
console.log(parseDomain(url2)) 
+0

不適用於.com域。 – Scimonster 2015-03-31 12:30:08

+0

所以現在你遇到了'.org.uk'域名的問題。這只是不會工作。 – Scimonster 2015-03-31 12:42:54

+0

我現在同意,如果沒有創建二級域名例外列表,這是不可能的 – jmgross 2015-03-31 12:46:04

0

我不認爲這可能沒有檢查像「.co.uk」的具體擴展名。 至少它不可能只使用字符計數或計算點。

而且通過這樣的回答證實:How to get domain name only using javascript?

關於上面提到的答案,注意頂級域名的名單,從那時起了很多發展,所以一定要更新您的列表,如果你想用這個答案的基地爲您的最終解決方案。 新鮮的列表:List of TLD's from IANA.org

0

試試這也將努力獲得頂級域名(Fiddle Link):

HTML代碼:

<input type="text" id="url"> 
<br/> 
<input type="button" value="Get Top Domain" id="getTopDomain"/> 

腳本獲得頂級域名:

jQuery('#getTopDomain').click(function() { 
    var regex = new RegExp(/\./g) 
    var text = jQuery('#url').val(); 
    var count = text.match(regex).length; 

    if(count > 1) { 
     text = text.substring(text.indexOf('.')+1); 
    } 
    alert(text); 
}); 

謝謝,

〜CHANDAN