Remove all but numbers from NSString

Ben Harris picture Ben Harris · Jul 15, 2009 · Viewed 77.5k times · Source

I have an NSString (phone number) with some parenthesis and hyphens as some phone numbers are formatted. How would I remove all characters except numbers from the string?

Answer

simonobo picture simonobo · Sep 15, 2009

Old question, but how about:

  NSString *newString = [[origString componentsSeparatedByCharactersInSet:
                [[NSCharacterSet decimalDigitCharacterSet] invertedSet]] 
                componentsJoinedByString:@""];

It explodes the source string on the set of non-digits, then reassembles them using an empty string separator. Not as efficient as picking through characters, but much more compact in code.