How to remove non numeric characters from phone number in objective-c?
See this answer: https://stackoverflow.com/a/6323208/60488
Basically:
NSString *cleanedString = [[phoneNumber componentsSeparatedByCharactersInSet:[[NSCharacterSet characterSetWithCharactersInString:@"0123456789-+()"] invertedSet]] componentsJoinedByString:@""];
For your case you may want to remove the characters "-", "(" and ")" from the character set.
I think there are ways to solve this:
- Using NSRegularExpression to remove anything but numbers. You can see here or here to know how to validate phone number.
- Write your own scanner to remove characters you don't need. Remove blanks or remove all but numbers.
- Use the UITextFieldDelegate, write the
textField:shouldChangeCharactersInRange:replacementString:
method, check the replacement string if it is in the range of 0-9.
Hope helps.
You can use few methods of NSString and NSMutableString as :
NSString *phone=@"(0) 111192222-2222";
//I'm from Brazil and here the correct mask for mobile phone numbers is (01111) 92222-2222
NSMutableString *editPhone=[NSMutableString stringWithString:[phone stringByReplacingOccurrencesOfString:@")" withString:@""]];
editPhone=[NSMutableString stringWithString:[editPhone stringByReplacingOccurrencesOfString:@" " withString:@""]];
[editPhone insertString:@") " atIndex:6];
NSLog(@"%@",editPhone);//(01111) 92222-2222