在ABAddressBook中搜索特定的电话号码

时间:2013-11-17 17:08:47

标签: ios iphone objective-c regex abaddressbook

我在搜索地址簿时遇到了一些问题。我想使用地址簿搜索电话号码并进行比较以检查它是否与其他号码匹配。

地址簿数据要匹配的普通数字就像这个+358473028403,但是当我从地址簿记录中检索电话号码时,它的格式为+358.473.028403。我尝试了很多比较这两个字符串的方法,但匹配总是失败。我使用此代码过滤从地址簿收到的电话号码中的字符,但它似乎不起作用。

  NSCharacterSet *toExclude = [NSCharacterSet characterSetWithCharactersInString:@"/.()- "];
  phoneNumber = [[phoneNumber componentsSeparatedByCharactersInSet:toExclude] componentsJoinedByString: @""];

   BOOL match =  [phoneNumber isEqualToString:@"+358473028403"]

匹配仍为NO

1 个答案:

答案 0 :(得分:0)

我尝试了您的示例代码,它按预期工作,给定+358.473.028403作为输入。

NSString *phoneNumber = @"+358.473.028403";
NSCharacterSet *toExclude = [NSCharacterSet characterSetWithCharactersInString:@"/.()- "];
phoneNumber = [[phoneNumber componentsSeparatedByCharactersInSet:toExclude] componentsJoinedByString:@""];
BOOL match =  [phoneNumber isEqualToString:@"+358473028403"];
NSLog(@"%@", match ? @"YES" : @"NO"); // => YES

问题很可能出在输入字符串中,这可能与你想象的不同。