如何应用正则表达式和/或清理电话串?

时间:2011-06-13 05:32:32

标签: iphone objective-c ios

我有一个包含传真电话号码的NSString。有时我会输入不同的格式,例如:(877)xxx-xxxx或877-xxx-xxxx。

如何清理NSSString以便我得到的只是XXXxxxxxx。

由于

1 个答案:

答案 0 :(得分:1)

使用NSCharacterSetNSMutableCharacterSet,您可以通过两种方式解决此问题。

  1. 如果您已经知道要删除的字符。

    NSCharacterSet *charSet = [NSCharacterSet characterSetWithCharactersInString:@"+-(),. "];
    NSArray *arrayWithNumbers = [str componentsSeparatedByCharactersInSet:charSet];
    NSString *numberStr = [arrayWithNumbers componentsJoinedByString:@""];
    
  2. 如果您不知道字符,可以使用已有的不同字符集

    NSMutableCharacterSet *charSet = [NSMutableCharacterSet new];
    [charSet formUnionWithCharacterSet:[NSCharacterSet whitespaceCharacterSet]];
    [charSet formUnionWithCharacterSet:[NSCharacterSet punctuationCharacterSet]];
    [charSet formUnionWithCharacterSet:[NSCharacterSet symbolCharacterSet]];
    NSArray *arrayWithNumbers = [str componentsSeparatedByCharactersInSet:charSet];
    NSString *numberStr = [arrayWithNumbers componentsJoinedByString:@""];