2016-04-19 6 views
0

文字列を調べ、その文字列にURLがあるかどうか確認したいと思います。存在する場合は、ユーザーがURLをタップできるようにフォーマットしたいと思います。文字列をスキャンしてNSURLを識別して変換する方法

文字列は静的ではなく、常に同じであることに注意してください。文字列は、コメントに属し、アプリのフィードに投稿するJSONデータです。そこhttp://又はhttps://等のために一致し、次いでNSURLに文字列の範囲を回す場合

私の最初のアイデアは、正規表現式を使用し、文字列をスキャン関数を作成することで、特定します。

他のアイデア、アドバイス、ソリューションはありますか?

ありがとうございます!

答えて

1

NSDataDetectorを使用してください。それについての素敵な記事:http://nshipster.com/nsdatadetector/

+0

+1。特に、 'UIDataDetectorTypes'と' UITextView'でのそれらの使用に注意してください。リンクは自動的にクリック可能になります。 –

+0

アレクサンダーようこそ、ありがとう、私は 'NSDataDetector'ソリューションに行く! –

+0

私は 'NSDataDector' **のみ**特定のドメイン、つまり' www.enrq.co'を変換し、他のすべてのものを無視するようにフィルタを設定する方法についてのヒントを教えてください。 –

0

NSDataDetectorクラスは、定義済みデータパターンの自然言語テキストと一致するように設計されたNSRegularExpressionの特別なサブクラスです。

現在、NSDataDetectorクラスは、日付、住所、リンク、電話番号、交通情報を照合することができます。オプション:

NSError *error = nil; 
    NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink|NSTextCheckingTypePhoneNumber 
                   error:&error]; 

NSRegularExpression方法n​​umberOfMatchesInString使用して、文字列の範囲内で一致の数を決定する範囲を:.

NSUInteger numberOfMatches = [detector numberOfMatchesInString:string 
                  options:0 
                  range:NSMakeRange(0, [string length])]; 

チェック以上で:https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSDataDetector_Class/

OR

あなたはUITextViewかのUIWebViewをお持ちの場合は、単にdataDetectorTypesプロパティを設定することで、リンクを検出することができます。 UITextViewのために

:のUIWebViewのために

TextView.dataDetectorTypes = UIDataDetectorTypeLink; 

webView.dataDetectorTypes = UIDataDetectorTypeLink; 

詳しくチェックの場合: `NSDataDetector`ためhttps://developer.apple.com/library/ios/qa/qa1495/_index.html

+0

Ronakにもありがとうございます。 –

関連する問題