2013-10-11 70 views
1

如何使用下面的代碼來檢查域是否真正匹配。URL解析和匹配

對於該域名和網址將返回true,但將爲此url = http://www.text-apple.com/uk/工作,這不是真正的匹配。

但它應該是在這種情況下url = http://itunes.apple.com"一場比賽,所以我需要添加類似,如果有一個.前的域名,然後匹配。

domain = "apple.com" 
url = "http://www.apple.com/uk/" 

def domain_is_URL?(url, domain) 
d = Regexp.escape(domain) 
URI.parse(url).host.match(d) 
end 

謝謝

+1

有用的提示,網址是強大的文件路徑 – jozefg

+0

你是什麼意思「真正的匹配」? – tadman

+0

我在那裏給出了這個例子'text-apple.com/uk /'不是真正的'apple.com',它是一個不同的網站 – John

回答

2

你可以嘗試比較主機部件:

domain_parts = domain.split('.') 

URI.parse(url).host.split('.').last(domain_parts.length) == domain_parts.length 

這個URI主機的最後N個部分進行比較,看看它們是相同的。 [ 'text-apple', 'com' ]不等於[ 'apple', 'com' ]