MENU
コンテンツ再構築中

Objective-C:NSDataDetector 文字列からURLや電話番号を取得する

正規表現から始めなくてもすむので助かる。ありがとうObjective-C。

INDEX

文字列からURLや電話番号を抽出する

クラス

NSDataDetector

メソッド

dataDetectorWithTypes:(NSTextCheckingTypes)checkingTypes

checkingTypesで指定した要素を文字列から抽出する。

よく使うと思われるcheckingTypesは以下の通り。

  • NSTextCheckingTypeDate 日時
  • NSTextCheckingTypeLink URLリンク
  • NSTextCheckingTypePhoneNumber 電話番号

サンプルコード

[code]
NSString *str = @”このエントリのURLは http://www.sirochro.com/note/objc-nsdatadetector-using/ です。電話番号 090-1234-5678″;

NSDataDetector *dataDetector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink|
NSTextCheckingTypePhoneNumber
error:nil];

NSArray *resultArray = [dataDetector matchesInString:str
options:0
range:NSMakeRange(0,[str length])];

for (NSTextCheckingResult *result in resultArray)
{
if ([result resultType] == NSTextCheckingTypeLink)
{
NSURL *url = [result URL];
NSLog(@”url:%@”,[url description]);
} else if ([result resultType] == NSTextCheckingTypePhoneNumber) {
NSString *phoneNumber = [result phoneNumber];
NSLog(@”tel:%@”,phoneNumber);
}
}
[/code]

Please share it!
  • URLをコピーしました!
  • URLをコピーしました!
INDEX