2011-06-07 166 views
4

我必須在iPhone應用程序中以編程方式撥打電話。 我在不同的國家設置了不同格式的數字 - 大括號,點,空格,「+」號。iPhone的電話號碼格式

我可以簡單地刪除所有這些,只留下數字嗎?

例如:

+ 1-(609)452-8401 => 16094528401 // USA
+49(0)89.439 => 49089439 //德國
+ 1-(949) 586-1250 => 19495861250 //洛杉磯,美國

這是正確的嗎?

+0

使用正則表達式IT。 – Tirth 2011-06-07 08:25:47

+5

我最喜歡的編程語言之一:「有時候你有問題,然後用正則表達式來解決這個問題,現在你有兩個問題。」 – makdad 2011-06-07 08:29:29

+1

這不是一個直接的答案,但無論你做什麼,我都強烈建議你爲此方法設置一個單元測試。您最終會找到想要正確解析的其他電話號碼,而單元測試將有助於自動確保您的代碼良好。 – makdad 2011-06-07 08:30:23

回答

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]];