我想通过一个字符串来确定该字符串中是否有URL。如果有,我想格式化它,以便用户可以点击URL。
请注意,字符串不是静态的或总是相同的。字符串是属于评论的JSON数据,并在应用的Feed中发布。
我的第一个想法是使用regEx表达式并创建一个扫描字符串的函数,确定是否匹配http://
或https://
等。然后将字符串的范围转换为NSURL
。
还有其他想法,建议,解决方案吗?
提前谢谢!
答案 0 :(得分:1)
使用NSDataDetector
。关于它的好文章:http://nshipster.com/nsdatadetector/
答案 1 :(得分:0)
NSDataDetector
类是NSRegularExpression
的专用子类,旨在匹配预定义数据模式的自然语言文本。
目前,NSDataDetector
课程可以匹配日期,地址,链接,电话号码和公交信息。
NSError *error = nil;
NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink|NSTextCheckingTypePhoneNumber
error:&error];
使用NSRegularExpression方法numberOfMatchesInString确定字符串范围内的匹配数:options:range:。
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:
TextView.dataDetectorTypes = UIDataDetectorTypeLink;
对于UIWebView:
webView.dataDetectorTypes = UIDataDetectorTypeLink;
有关详情,请查看:https://developer.apple.com/library/ios/qa/qa1495/_index.html