「私の文字列が有効なURLならば」のようなコードを書くのに助けてください これはいくつかのコード文字列で書くことができますか?NSStringオブジェクトが有効なURLかどうかを素早く確認するには?
答えて
URLで、インターネットリソースの場所を識別する文字列を参照しているとします。
入力文字列の形式について考えている場合は、文字列が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を返す必要があります。実際にはそうではありません。
すばらしい答え!ありがとう。それが私のためにうまくいくことが最も重要です。 – Stas
NSUrlを作成して、それがnil以外の結果を返すかどうかを確認してください。
..ちょうど右の構文を必要とする: 場合([NSURL urlWithString:urlString]!= nilを){ } をが、何らかの理由で、それはちょうど私に私の文字列を返します! (文字列が有効なURLでない場合は、nilを返さなければならないと言っていますが) – Stas
if ([NSURL URLWithString:text]) {
// valid URL
}
else {
// invalid URL
}
それはうまくいきません...私は奇妙なバグに出会ったのですか? ? 私はNSLog(@ "無効なURL:%@"、[NSURL URLWithString:urlString])のログを持っています。そして、それは私に表示されます: 無効なURL:img/playgrounds.png – Stas
これはあなたがあなたの質問で既に試したことを言うべき理由です。あなたの文字列が文字通り "img/playgrounds.png"の場合は正しいです。それは有効なURLではありません。 'http:// img.ly/playground.png'と試してみるとうまくいきます。 –
+ (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
私は明らかに正規表現のチェックよりも良いとそれほど複雑チェックです。このソリューションを使用 -
- (BOOL)isURL:(NSString *)inputString
{
NSURL *candidateURL = [NSURL URLWithString:inputString];
return candidateURL && candidateURL.scheme && candidateURL.host;
}
- 1. xpathがIEで有効かどうかを素早く確認する方法はありますか?
- 2. SSIS - URLが有効かどうかを確認する
- 3. URLが有効かどうかを確認する-404 /見つからない
- 4. URLが有効かどうかを確認してください。
- 5. URLがAndroidで有効かどうかを確認してください。
- 6. どのように素早くモニタを有効/無効にしますか?
- 7. aspセッションが有効かどうかを確認するには?
- 8. ethereumアドレスが有効かどうかを確認するには?
- 9. アレイが交差しているかどうかを素早く確認
- 10. URLがAndroidで有効かどうかを確認するにはどうすればよいですか?
- 11. どこが素早い要素であるかを確認
- 12. データベースへのURLが有効かどうかを確認する方法?
- 13. Hive-データを素早く確認する
- 14. UITextFieldのテキストが有効なメールかどうかを確認するには?
- 15. Firebase認証トークンが有効かどうかを確認
- 16. wifiオプションが有効かどうかを確認する方法
- 17. 画像が有効かどうかを確認するPNGファイル
- 18. ポインタが有効かどうかを確認する方法?
- 19. SQL Server:CLRが有効かどうかを確認する方法?
- 20. 制御値が有効かどうかを確認するXPath
- 21. AndroidでWi-Fiが有効かどうかを確認する
- 22. 電子メールが有効かどうかを確認する
- 23. コアデータが有効かどうかを確認するXcode
- 24. 角スピナーが有効かどうかを確認する方法
- 25. CArchiveが有効かどうかを確認する方法
- 26. アクセストークンが有効かどうかを確認する - Identity Server
- 27. SharePoint Online URLが有効なドキュメントライブラリであるかどうかを確認してください。
- 28. Yii2 URLが有効な画像を指しているかどうか確認してください
- 29. コントローラでボタンが有効かどうかを確認します
- 30. ユーザーが有効かどうかを確認します。
「有効」によって、あなたは単に構文の要件を満たす意味だか、を指す意味ですか既存のサイトですか? –
は、私はすでに試した – Stas