[英]Convert an iPhone phone number format for a “dial-able” string
我正在构建一个iPhone应用程序,该应用程序从通讯录中读取电话号码并拨打电话(当然还有其他一些事情... :))。 当我从AB加载电话号码时,它们的格式如下:“ 1(111)111-1111”,在使用此格式时无法“拨打”:
fullNumber = [NSString stringWithFormat:@"%@%@", @"tel:", phoneNum];
为什么会这样呢? 解决此问题的最佳方法是什么? 如何将电话号码转换为数字字符串(无空格或“-”)?
谢谢。
这将去除所有非数字字符:
phoneNumDecimalsOnly = [[phoneNum componentsSeparatedByCharactersInSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]] componentsJoinedByString:@""];
以下代码在输入的字符串中仅允许数字和+
。
phoneNumber = [[phoneNumber componentsSeparatedByCharactersInSet:
[[NSCharacterSet characterSetWithCharactersInString:@"+0123456789"]
invertedSet]]
componentsJoinedByString:@""];
要回答有关从字符串中删除特定字符的问题,请具体看一看NSString类参考中的方法stringByReplacingOccurrencesOfString:withString:
你可以做
fullNumer = [fullNumber stringByReplacingOccurrencesOfString:@"(" withString:@""];
fullNumer = [fullNumber stringByReplacingOccurrencesOfString:@")" withString:@""];
fullNumer = [fullNumber stringByReplacingOccurrencesOfString:@"-" withString:@""];
fullNumer = [fullNumber stringByReplacingOccurrencesOfString:@" " withString:@""];
显然不是最有效的方法,但是它应该使您对方法以及如何去除特定字符有所了解。
在下面的SO帖子中可以看到覆盖数字以外的任何字符的另一个选项,这可能是解决问题的更好的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.