iPhone 的电话号码格式

4
我需要在我的iPhone应用程序中以编程方式进行通话。我有一组来自不同国家、不同格式的号码 - 括号、点、空格、"+"符号。
我可以简单地删除所有这些内容,只留下数字吗?
例如:
+1-(609) 452-8401 => 16094528401 // 美国 +49(0)89.439 => 49089439 // 德国 +1-(949)586-1250 => 19495861250 // 美国洛杉矶
这样做是否正确?

使用正则表达式来实现它。 - Tirth
5
我最喜欢的编程表达式之一是:“有时你会遇到一个问题,然后你使用正则表达式来解决这个问题。现在你有了两个问题。” - makdad
1
这不是一个直接的答案,但无论你做什么,我强烈建议你为这个方法设置一个单元测试来完成这项工作。你最终会发现其他你想要正确解析的电话号码,而单元测试将帮助自动化确保你的代码是好的过程。 - makdad
如果您对正则表达式没有经验,请尝试以不同的方式解决问题。没有深入理解正则表达式,很难维护、调试和阅读。 - Nick Weaver
1个回答

3

试试这个:

NSMutableString *str1=[[NSMutableString alloc] initWithString:telephoneString];
[str1 setString:[str1 stringByReplacingOccurrencesOfString:@"(" withString:@""]];
[str1 setString:[str1 stringByReplacingOccurrencesOfString:@")" withString:@""]];
[str1 setString:[str1 stringByReplacingOccurrencesOfString:@"-" withString:@""]];
[str1 setString:[str1 stringByReplacingOccurrencesOfString:@" " withString:@""]];
telephoneString = [@"tel://" stringByAppendingString:str1];
[str1 release];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:telephoneString]];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接