我正在使用NSDataDetector解析文本并检索数字。这是我的代码:
NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypePhoneNumber
error:&error];
NSArray *matches = [detector matchesInString:locationAndTitle options:0 range:NSMakeRange(0,[locationAndTitle length])];
for (NSTextCheckingResult *match in matches) {
if ([match resultType] == NSTextCheckingTypePhoneNumber) {
self.theNumber = [match phoneNumber];
}
}
问题在于它有时会返回如下内容:
电话:9729957777
要么
9729957777x3547634
我不希望它出现并删除它,然后使用正则表达式代码检索数字会更困难。您对如何仅检索数字有任何想法吗?
最佳答案
我个人将只在字符串上使用-substringWithRange:
删除所有过去的内容,包括'x'字符:
NSString * myPhoneNum = @"9729957777x3547634";
NSRange r = [myPhoneNum rangeOfString:@"x"];
if (r.location != NSNotFound) {
myPhoneNum = [myPhoneNum substringWithRange:NSMakeRange(0, r.location)];
}
NSLog(@"Fixed number: %@", myPhoneNum);
知道x3547634的来源吗?
关于ios - NSDataDetector电话号码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6803608/