2010-11-08 59 views

回答

2

域名没有“扩展名”,它们只是域名和子域名。如果你碰到这个地址:

[email protected] 

你想要什么?

你可以把你的分裂更进一步

domainPieces = domain.split(".") 

但你必须决定你要使用这些作品做什么。

可能的代码:

# expand this list 
closedTlds = [ 'uk', 'pro' ] 
# expand this list too 
fullDomains = [ 'del.icio.us' ] 

whoKnowsWhatThisActuallyMeans = '' 

domain = email.split("@").last 
domainPieces = domain.split(".") 

if fullDomains.include?(domain) 
    whoKnowsWhatThisActuallyMeans = domain 
else 
    if closedTlds.include?(domainPieces.Last) 
     whoKnowsWhatThisActuallyMeans = domainPieces[-3] 
    else 
     whoKnowsWhatThisActuallyMeans = domainPieces[-2] 
    end 
end 

whoKnowsWhatThisActuallyMeans # should return the correct value 

我还在学习Ruby,所以我觉得语法是正确的,但我不知道。

+0

究竟这就是为什么我在寻找专家意见:) – AnApprentice 2010-11-08 23:07:03

+0

你还没有描述你想解决什么问题。你所说的是,你想删除“扩展名”,但你没有描述你的意思。有许多“TLD”(顶级域名),其中包括诸如“.com”,“.org”,“.net”等标准内容,不常见的内容如“.museum”,“.info”,“ .pro“和一些双字母国家代码域,如”.uk“,”.cn“,”.jp“。每个顶级域名(TLD)都有一个负责子域名如何工作的小组。 “.com”有一个开放的政策,其中基本上任何域名都可以注册, – McKay 2010-11-08 23:11:24

+0

其中像“.pro”和“.uk”这样的域只允许某些子域名被打开。任何状况之下。任何域的所有者可以决定是否允许子域。有一次,我负责域msdnaa.cs.byu.edu,我负责决定是否允许其下的子域名。对允许使用多少个子域几乎没有限制。你想解决什么问题? – McKay 2010-11-08 23:13:05