从字符串中删除格式:目标 c 中的“(123) 456-7890” => “1234567890”
Posted
技术标签:
【中文标题】从字符串中删除格式:目标 c 中的“(123) 456-7890” => “1234567890”【英文标题】:Remove formatting from a string: “(123) 456-7890” => “1234567890” in objective c 【发布时间】:2016-05-31 06:27:06 【问题描述】:我有一串电话号码,格式为 (123)-(456)-7890,但如何转换为以下形式 1234567890?
【问题讨论】:
【参考方案1】:试试这个
NSString *numberString = [[mixedString componentsSeparatedByCharactersInSet:
[[NSCharacterSet decimalDigitCharacterSet] invertedSet]]
componentsJoinedByString:@""];
它将给出字符串中的数字。
【讨论】:
如果数字格式不是预期的,您可以随时使用 stringByReplacingOccurrencesOfString,如以下链接中所示***.com/questions/6638623/… 非常感谢 Maulik @SivaramYadav:当然!你应该开始接受答案了。【参考方案2】:stringByReplacingOccurrencesOfString
也支持正则表达式
NSString *phoneNumber = @"(123)-(456)-7890";
NSString *filteredPhoneNumber = [phoneNumber stringByReplacingOccurrencesOfString:@"[ ()-]"
withString:@""
options:NSRegularExpressionSearch
range:NSMakeRange(0, phoneNumber.length)];
NSLog(@"%@", filteredPhoneNumber);
将所有要忽略的字符放在第一个参数的括号之间。
另一种正则表达式是@"[^\\d+]"
,这意味着忽略所有非数字字符
【讨论】:
【参考方案3】:NSString *str = @"(123)-(456)-7890";
str = [str stringByReplacingOccurrencesOfString: @"(" withString:@""];
str = [str stringByReplacingOccurrencesOfString: @")" withString:@""];
str = [str stringByReplacingOccurrencesOfString: @"-" withString:@""];
NSLog(@"Output = %@",str);
输出 = 1234567890
【讨论】:
【参考方案4】:您还可以使用 stringByReplacingOccurrencesOfString
替换单行编码中的更多字符
NSString *YourString = @"(123)-(456)-7890";
YourString = [[[YourString stringByReplacingOccurrencesOfString:@"(" withString:@""] stringByReplacingOccurrencesOfString:@")" withString:@""] stringByReplacingOccurrencesOfString:@"-" withString:@""];
NSLog(@"YourString == > %@",YourString);
YourString == > 1234567890
【讨论】:
【参考方案5】:使用此代码,
NSString *valString = @"(123)456-7890";
NSString* phoneStr=[[[valString stringByReplacingOccurrencesOfString:@"(" withString:@""] stringByReplacingOccurrencesOfString:@")" withString:@""] stringByReplacingOccurrencesOfString:@"-" withString:@""];
NSLog(@"phone String %@",phoneStr); // finally you get phone String 1234567890
它对我有用,希望它有帮助
【讨论】:
【参考方案6】:如果您希望您的代码在美国以外的地区使用,请使用 Google 的电话库。格式化和提取电话号码很困难。我什至不会尝试自己动手做。
【讨论】:
以上是关于从字符串中删除格式:目标 c 中的“(123) 456-7890” => “1234567890”的主要内容,如果未能解决你的问题,请参考以下文章