【发布时间】:2016-05-31 06:27:06
【问题描述】:
我有一串电话号码,格式为 (123)-(456)-7890,但如何转换为以下形式 1234567890?
【问题讨论】:
标签: ios objective-c
我有一串电话号码,格式为 (123)-(456)-7890,但如何转换为以下形式 1234567890?
【问题讨论】:
标签: ios objective-c
试试这个
NSString *numberString = [[mixedString componentsSeparatedByCharactersInSet:
[[NSCharacterSet decimalDigitCharacterSet] invertedSet]]
componentsJoinedByString:@""];
它将给出字符串中的数字。
【讨论】:
stringByReplacingOccurrencesOfString也支持正则表达式
NSString *phoneNumber = @"(123)-(456)-7890";
NSString *filteredPhoneNumber = [phoneNumber stringByReplacingOccurrencesOfString:@"[ ()-]"
withString:@""
options:NSRegularExpressionSearch
range:NSMakeRange(0, phoneNumber.length)];
NSLog(@"%@", filteredPhoneNumber);
将所有要忽略的字符放在第一个参数的括号之间。
另一种正则表达式是@"[^\\d+]",这意味着忽略所有非数字字符
【讨论】:
NSString *str = @"(123)-(456)-7890";
str = [str stringByReplacingOccurrencesOfString: @"(" withString:@""];
str = [str stringByReplacingOccurrencesOfString: @")" withString:@""];
str = [str stringByReplacingOccurrencesOfString: @"-" withString:@""];
NSLog(@"Output = %@",str);
输出 = 1234567890
【讨论】:
您还可以使用 stringByReplacingOccurrencesOfString 替换单行编码中的更多字符
NSString *YourString = @"(123)-(456)-7890";
YourString = [[[YourString stringByReplacingOccurrencesOfString:@"(" withString:@""] stringByReplacingOccurrencesOfString:@")" withString:@""] stringByReplacingOccurrencesOfString:@"-" withString:@""];
NSLog(@"YourString == > %@",YourString);
YourString == > 1234567890
【讨论】:
使用此代码,
NSString *valString = @"(123)456-7890";
NSString* phoneStr=[[[valString stringByReplacingOccurrencesOfString:@"(" withString:@""] stringByReplacingOccurrencesOfString:@")" withString:@""] stringByReplacingOccurrencesOfString:@"-" withString:@""];
NSLog(@"phone String %@",phoneStr); // finally you get phone String 1234567890
它对我有用,希望它有帮助
【讨论】:
如果您希望您的代码在美国以外的地区使用,请使用 Google 的电话库。格式化和提取电话号码很困难。我什至不会尝试自己动手做。
【讨论】: