Например:Как я могу получить только ДВУ NSURL?
"http://www.youtube.com" -> ".com"
"http://www.google.com.gr" -> ".com.gr"
"https://made.in.china.chinesewebsite.닷컴" ->
"닷컴."Хост URL-адреса является тупиковым.
NSURL *URL;
[URL host];
Например:Как я могу получить только ДВУ NSURL?
"http://www.youtube.com" -> ".com"
"http://www.google.com.gr" -> ".com.gr"
"https://made.in.china.chinesewebsite.닷컴" ->
"닷컴."Хост URL-адреса является тупиковым.
NSURL *URL;
[URL host];
Получить множество URL-адресов, разбить его на .
разделителем, и возьмите последний компонент.
- (NSString *) tldOfURL: NSURL *theURL; {
NSString *host = theURL.host;
NSArray *parts = [host componentsSeparatedByString: @"."];
if parts.count < 2 {
return nil;
}
return parts.lastObject;
}
В первый мой ответ был использовать NSURLComponents
, как и в большинстве случаев этот класс делает всю тяжелую работу за вас, но похоже, что он не имеет механизма для извлечения TLD.
Обратите внимание, что указанное выше будет возвращать нуль, если имя хоста не содержит хотя бы один период (.
) и вернет пустую строку, если хост заканчивается периодом. Оба эти случая следует рассматривать как ошибки.
P.S. Я начинаю ржать на синтаксисе Objective-C. Трудно поверить, учитывая, сколько лет я потратил на создание Objective-C!
Это не будет работать для «.com.gr» или любого другого TLD, который состоит из нескольких компонентов, разделенных точкой. Постскриптум Ваше имя звучит знакомо. :) – Vulkan
http://stackoverflow.com/questions/20430620/is-it-possible-to-just-get-the-domain-and-tld-from-an-nsurl-no-www-or-anything –
ответ считается само собой разумеющимся, что вы знаете, что ищете, и он проводит сравнение. Он работает для этого [URL isFromWebsite: «youtube.com»], а также [URL isFromWebsite: «. Com»]; – Vulkan
Но '.com.gr' не является TLD -' .gr'. –