我正在使用以下代码来检测字符串中的电子邮件。除了处理具有纯数字前缀的电子邮件,例如“[email protected]”,它工作正常。是否有可能克服这个苹果的缺陷?任何帮助将不胜感激!如何检测任意字符串内的电子邮件地址
NSString *string = @"[email protected]";
NSError *error = NULL;
NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink error:&error];
NSArray *matches = [detector matchesInString:string
options:0
range:NSMakeRange(0, [string length])];
for (NSTextCheckingResult *match in matches) {
if ([match.URL.scheme isEqualToString:@"mailto"]) {
NSString *email = [match.URL.absoluteString substringFromIndex:match.URL.scheme.length + 1];
NSLog(@"email :%@",email);
}else{
NSLog(@"[match URL] :%@",[match URL]);
}
}
编辑: 日志结果是:匹配URL]:
我只是看着NSDataDetectors注释部分 - 电子邮件地址不显示为支持的类型 - 难怪它不工作。 – 2013-03-20 14:18:56
@DavidH它不支持 – 2013-03-20 14:25:43
如果您确定,我想将标题更改为“如何检测任意字符串内的电子邮件地址?” – 2013-03-20 14:35:00