最近从通讯录读取电话号码,读出得号码如:134-1814-****。

而我需要的为11位纯数字,一直找方法解决此问题,今天终于找到了。。

分享一下……

代码如下:

NSString *originalString = @"(123) 123123 abc";

NSMutableString *strippedString = [NSMutableString

stringWithCapacity:originalString.length];

NSScanner *scanner = [NSScanner scannerWithString:originalString];

NSCharacterSet *numbers = [NSCharacterSet

characterSetWithCharactersInString:@"0123456789"];

while ([scanner isAtEnd] == NO) {

NSString *buffer;

if ([scanner scanCharactersFromSet:numbers intoString:&buffer]) {

[strippedString appendString:buffer];

}

// --------- Add the following to get out of endless loop

else {

[scanner setScanLocation:([scanner scanLocation] + 1)];

}

// --------- End of addition

}

NSLog(@"%@", strippedString); // "123123123"

05-12 14:39