Web URLかパスかどうかを検出するにはどうすればよいですか? NSURLアップルのリファレンスページでパス間のURLを検出する
が書かれている、それが標準に基づいている場合、それはURLを受け入れますが、文字列の任意の種類は、それがこのコードのように、URLとして受け入れる:
NSURL *url=[NSURL URLWithString:@"/book.xml"];
NSLog(@"%@",url);
これはウェブではありませんURLを保持しており、値として返すこともできます。 私はこの機能を試しましたが、すべてのURLでは機能しません!
-(BOOL) urlIsValiad: (NSString *) url {
NSString *regex = @"((?:http|https)://(?:www\\.)?[\\w\\d\\-_]+\\.\\w{2,3}/?(?:[\\w\\d\\-./_]+)?)";
NSPredicate *regextest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
if ([regextest evaluateWithObject: url] == YES) {
NSLog(@"It is a valid URL!");
} else {
NSLog(@"It is not valid URL!");
}
return [regextest evaluateWithObject:url];
}
他のパスの中でもURLが検出されています。
私の投稿を編集しました。同様のものを使用しましたが、それでも機能しないいくつかの例外的なケースがあります。 – user1095058
NSDataDetectorが機能しないのですか?私は間違っているかもしれませんが、NSDataDetectorは複数のURLを1つの長い文字列で見つけることができるはずです。 –
残念ながら私はそれを使用することはできません!なぜなら私は10.5のOSXバージョンで動作するアプリケーションを提供しようとしているからです! – user1095058