首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSDataDetector电话号码

NSDataDetector电话号码
EN

Stack Overflow用户
提问于 2011-07-24 06:05:49
回答 1查看 728关注 0票数 1

我正在使用NSDataDetector解析文本并检索数字。下面是我的代码:

代码语言:javascript
复制
 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

我不希望它出现,而且删除它比使用正则代码检索数字更难。你知道如何只检索号码吗。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-24 09:00:48

就我个人而言,我只是在字符串上使用-substringWithRange:来删除过去的所有内容,包括'x‘字符:

代码语言:javascript
复制
NSString * myPhoneNum = @"9729957777x3547634";
NSRange r = [myPhoneNum rangeOfString:@"x"];
if (r.location != NSNotFound) {
    myPhoneNum = [myPhoneNum substringWithRange:NSMakeRange(0, r.location)];
}
NSLog(@"Fixed number: %@", myPhoneNum);

不管怎样,你知道x3547634是从哪里来的吗?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6803608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档