繁体   English   中英

将iPhone电话号码格式转换为“可拨号”字符串

[英]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帖子中可以看到覆盖数字以外的任何字符的另一个选项,这可能是解决问题的更好的方法。

从NSString中删除所有数字

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM