2017-02-17 14 views
0

다른 웹 브라우저처럼 작동하는 웹 브라우저를 만들고 있습니다.문자열이 Google 검색 또는 URL인지 확인하는 방법은 무엇입니까?

  • 자유형 텍스트 인 "vasdfygvaosfh"를 입력하면 Google 검색이 수행됩니다.

  • URL 구조가 "abc.com"인 텍스트를 입력하면 새 페이지가 열립니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 나는 점의 유무에 관한 if 문을 몇 개 사용해야할까요? " 선물이나 선물?

+0

이 [링크]를 참조하십시오 (http://stackoverflow.com/questions/28079123/how-to-check-validity-of-url-in-swift) 기본적으로 같은 질문에 대해 – Florensvb

답변

0

나는 문자열이 유효한 URL인지 확인이 코드 (NSString의 범주를) 사용

- (BOOL) isValidURLString 
{ 
    BOOL result = NO; 

    if (!self.length) 
     return result; 

    NSError *error = NULL; 
    NSDataDetector *urlDetector = [NSDataDetector dataDetectorWithTypes: NSTextCheckingTypeLink error: &error]; 
    NSUInteger numberOfMatches = [urlDetector numberOfMatchesInString: self 
                   options: 0 
                   range: NSMakeRange(0, self.length)]; 

    if (!error && numberOfMatches > 0) 
     result = YES; 

    return result; 
} 
+0

어쨌든 NSURL로 변환해야 할 것입니다. 전체 문자열이 URL이 아니면 true를 반환하지만 변환은 실패합니다. [NSURL URLWithString : string]이 nil을 반환하는지 확인하는 것이 더 합리적입니다. 발견되면이를 검색으로 처리하고 URL로 처리하십시오. – dgatwood

0

당신은 시도 할 수있는 regex 같이 :

- (BOOL)isValidURL:(NSString *)candidate{ 

    NSString *urlRegEx = @"(http|https)://((\\w)*|([0-9]*)|([-|_])*)+([\\.|/]((\\w)*|([0-9]*)|([-|_])*))+"; 

    NSPredicate *urlTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", urlRegEx]; 

    return [urlTest evaluateWithObject:candidate]; 
}