Ben Harris Ben Harris - 4 months ago 12
Objective-C Question

Remove all but numbers from NSString

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

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.