比较不同格式的电话号码

时间:2012-03-07 06:31:42

标签: ios iphone objective-c ipad

手机nubmber可以有不同的格式,如0XXXXXXXXXX或+ 91XXXXXXXXXX或XXXXXXXXXX。

在所有情况下,电话号码都相似。

我如何比较?

3 个答案:

答案 0 :(得分:1)

请为上帝的爱这样做:处理所有格式的电话号码与处理不同的数据格式一样棘手和毛茸茸。使用一些现有的“成熟”库总是一个明智的选择。使用PhoneNumberKit,它是其中一个成熟且受欢迎的图书馆。

但如果你想生活在边缘,你可以试试这样的事情 -

  1. 反转字符串&只比较前10个字符。
  2. 正则表达式将是更好的解决方案。拥有与格式和格式一样多的正则表达式你很高兴。
  3. 请为其他人开源此库以使其受益:)
  4. handling phone numbers

    的一般阅读

答案 1 :(得分:0)

您可以使用字符匹配代码的自定义字符开始从右到左比较。它也可以工作,因为手机上的最后几位数字比前几位数字更多,所以你的代码将在不相等的比较中快速失败,这正是你想要的。保持你有多少匹配的数量,如果它通过一个特定的阈值,如10,然后调用相等的数字。如果不知道更多细节,那么这将使其工作得相当好。

答案 2 :(得分:0)

正如srikar提到的那样,要反转字符串并比较10个字符。创建方法并为所有三个字符串调用它,然后比较它们。

NSMutableString *reversedString = [NSMutableString string];
NSInteger charIndex = [myString length];
NSInteger count;
count=10;
while(count >= 0) {
    count--;    
    charIndex--;
    NSRange subStrRange = NSMakeRange(charIndex, 1);
    [reversedString appendString:[myString substringWithRange:subStrRange]];
}