Tag: nsdatadetector

如何提取文本中的电子邮件/邮箱string列表或testingstring是否是正确的电子邮件地址?

鉴于一些任意文本,我想提取所有电子邮件地址和“邮箱说明符”(例如"Fred Smith" <fred@me.com> )。 我看着NSDataDetector,但它不处理电子邮件地址。

如何在UITextView中禁用放大

我想摆脱UITextView中的放大和文本select,但我需要电话号码,链接和地址检测器。 我在用 -(void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer { if ([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]]) { gestureRecognizer.enabled = NO; } [super addGestureRecognizer:gestureRecognizer]; return;} 停止放大,但它也停止select电话号码/地址/链接检测到的文字。 如果我这样做[_txtView setSelectable:NO]; 它会停止放大和文本select以及数据检测。

使用NSDataDetector进行NSDate检测

我试图从UNSSNOWN格式的NSString中获得一个NSDate,所以我写了一个像下面这样的函数 -(void)dateFromString:(NSString*)string { NSError *error = NULL; NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:(NSTextCheckingTypes)NSTextCheckingTypeDate error:&error]; NSArray *matches = [detector matchesInString:string options:0 range:NSMakeRange(0, [string length])]; NSLocale* currentLoc = [NSLocale currentLocale]; for (NSTextCheckingResult *match in matches) { if ([match resultType] == NSTextCheckingTypeDate) { NSLog(@"Date : %@", [[match date] descriptionWithLocale:currentLoc]); } } } 除了一个地方,它运作良好。 如果我调用 [self dateFromString:@"6/12"]; 它打印 date:2014年6月12日星期四12:00:00澳大利亚东部标准时间 同时,如果我打电话 […]

如何检测任意string中的电子邮件地址

我正在使用下面的代码来检测string中的电子邮件。 除了处理纯数字前缀的电子邮件,如“536264846@gmail.com”,它工作正常。 是否有可能克服这个苹果的错误? 任何帮助将不胜感激! NSString *string = @"536264846@gmail.com"; 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]: […]