我有一个来自服务器的字符串,我想检查它是否包含电话号码、邮件地址和电子邮件等表达式。我在电话号码和邮件地址的情况下取得了成功,但没有电子邮件。为此,我正在使用 NSDataDetector
。例如
NSString *string = sourceNode.label; //coming from server
//Phone number
NSDataDetector *phoneDetector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypePhoneNumber error:nil];
NSArray *phoneMatches = [phoneDetector matchesInString:string options:0 range:NSMakeRange(0, [string length])];
for (NSTextCheckingResult *match in phoneMatches) {
if ([match resultType] == NSTextCheckingTypePhoneNumber) {
NSString *matchingStringPhone = [match description];
NSLog(@"found URL: %@", matchingStringPhone);
}
}
但是如何对电子邮件做同样的事情呢?
最佳答案
if (result.resultType == NSTextCheckingTypeLink)
{
if ([result.URL.scheme.locaseString isEqualToString:@"mailto"])
{
// email link
}
else
{
// url
}
}
电子邮件地址属于 NSTextCheckingTypeLink。只需在找到的 URL 中查找“mailto:”,您就会知道它是电子邮件或 URL。
关于iphone - 使用 NSDataDetector 检查电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8850918/