幫我寫一些代碼,如「如果我的字符串是一個有效的網址,請不要輸入」 是否可以在幾串代碼中編寫代碼?如何快速檢查NSString對象是否是有效的url?
回答
我會假設通過URL指的是一個標識Internet資源位置的字符串。
如果您對輸入字符串的格式有所瞭解,那麼爲什麼不手動檢查字符串是否以http://
,https://
或您需要的任何其他方案開頭。如果你希望其他協議,也可以將它們添加到檢查列表(例如ftp://
,mailto://
等)
if ([myString hasPrefix:@"http://"] || [myString hasPrefix:@"https://"])
{
// do something
}
如果你正在尋找一個更堅實的解決方案,並檢測到任何類型的URL方案,那麼你應該使用正則表達式。
作爲一個側面說明,NSURL類旨在表達任何類型的資源位置(不只是互聯網資源)。這就是爲什麼像img/demo.jpg
或file://bla/bla/bla/demo.jpg
這樣的字符串可以轉換成NSURL對象。
但是,根據文檔[NSURL URLWithString]
應返回nil,如果輸入字符串不是有效的Internet資源字符串。在實踐中它不是。
很好的答案!謝謝。最重要的是它對我來說工作得很好。 – Stas 2012-02-13 18:37:18
嘗試使用它創建NSUrl,並查看它是否返回非零結果。
我已經試過: if([NSURL urlWithString:urlString]!= nil){ } } 但由於某種原因,它只是返回給我我的字符串! (雖然方法描述說,如果字符串不是一個有效的網址,它必須返回nil ..不知道爲什麼) – Stas 2012-02-13 13:08:23
if ([NSURL URLWithString:text]) {
// valid URL
}
else {
// invalid URL
}
這就是它不起作用的地方...我遇到了一個奇怪的錯誤或什麼? ? 我有一個日誌在if NSLog(@「invalid url:%@」,[NSURL URLWithString:urlString]);它顯示了我: 無效的網址:img/playgrounds.png – Stas 2012-02-13 13:22:49
這就是爲什麼你應該說你已經試過你的問題。如果你的字符串是字面上的「img/playgrounds.png」,那麼它是正確的;這不是一個有效的網址。如果你試着用'http:// img.ly/playground.png',那麼它就可以工作。 – 2012-02-13 13:49:04
+ (BOOL)validateUrlString:(NSString*)urlString
{
if (!urlString)
{
return NO;
}
NSDataDetector *linkDetector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink error:nil];
NSRange urlStringRange = NSMakeRange(0, [urlString length]);
NSMatchingOptions matchingOptions = 0;
if (1 != [linkDetector numberOfMatchesInString:urlString options:matchingOptions range:urlStringRange])
{
return NO;
}
NSTextCheckingResult *checkingResult = [linkDetector firstMatchInString:urlString options:matchingOptions range:urlStringRange];
return checkingResult.resultType == NSTextCheckingTypeLink
&& NSEqualRanges(checkingResult.range, urlStringRange);
}
這個工程。謝謝 – kevinl 2016-02-16 17:14:04
我用這個解決方案,它顯然不是一個正則表達式檢查一個更好的和不太複雜的檢查 -
- (BOOL)isURL:(NSString *)inputString
{
NSURL *candidateURL = [NSURL URLWithString:inputString];
return candidateURL && candidateURL.scheme && candidateURL.host;
}
- 1. 檢查是否是DJANGO對象有效
- 2. 檢查url是否有效
- 3. 如何檢查URL是否有效
- 4. 如何檢查URL是否有效?
- 5. 檢查對象是否有效?
- 6. 如何檢查UITextfield是否快速無效
- 7. 如何檢查給定的值是否是有效的URL
- 8. 如何檢查字符串是否是有效的HTTP URL?
- 9. SSIS - 檢查URL是否有效
- 10. 檢查流式URL是否有效
- 11. 使用jquery檢查URL是否有效
- 12. 檢查URL是否有效-404/Not Found
- 13. 如何檢查函數對象是否有效
- 14. 檢查是否cl_mem對象是有效的
- 15. 如何檢查URL是否具有有效的公共TLD?
- 16. 快速檢查實體是否相交?
- 17. 檢查快速會話是否過期
- 18. 快速檢查陣列是否相交
- 19. 如何檢查相對URL是否是PHP中的當前URL?
- 20. 如何檢查NSString是否包含'%'?
- 21. 如何檢查對象是否是Cocoa中的Foundation對象?
- 22. 如何檢查從URL加載的UIImage是否有效
- 23. 如何檢查輸入的url是否有效?
- 24. 如何檢查UserControl是否有效
- 25. 如何檢查userinput是否有效?
- 26. 如何檢查BST是否有效?
- 27. 如何檢查網卡是否有效?
- 28. 如何檢查IMAP-IDLE是否有效?
- 29. 如何檢查RDD是否有效?
- 30. 如何檢查代表是否有效?
通過「有效」你僅僅意味着符合語法要求,還是你的意思是指向一個現有網站? – 2012-02-13 12:49:03
我只需要正確的語法.. – Stas 2012-02-13 13:09:10