2011-05-06 58 views
2
String.Format("{0:###-###-####}", customer.ContactHome); //NOT working (9891205789) 

的String.Format沒有格式化的電話號碼

String.Format("{0:###-###-####}", Convert.ToInt64(customer.ContactHome)); //Works fine (989-120-5789) 

,但我不想投手機不會因某種原因。如何在不投射時格式化電話號碼?

+2

whats ContactHome原創類型? – ariel 2011-05-06 07:38:28

回答

5

您對字符串customer.ContactHome使用數字格式("{0:###-###-####}"),這就是爲什麼它不起作用。

+0

比我應該使用什麼? – patel 2011-05-06 09:24:52

+0

Regex.Replace看起來不錯。 – JPBlanc 2011-05-06 10:47:50

7

如果customer.ContactHome是字符串,你可以這樣做:

Regex.Replace(customer.ContactHome, "(\d\d\d)(\d\d\d)(\d\d\d\d)", "$1-$2-$3"); 

customer.ContactHome.Substring(0,3) + "-" + 
customer.ContactHome.Substring(3,3) + "-" + 
customer.ContactHome.Substring(6,4); 
+0

有些人:http://regex.info/blog/2006-09-15/247 – Oded 2011-05-06 07:41:21

+0

正則表達式給\\ d \ d的「無法識別的轉義序列」。 – patel 2011-05-06 11:26:20

+0

您是否在使用System.Text.RegularExpressions.Regex.Replace ? – ariel 2011-05-06 11:30:20

0

如果customer.ContactHomestring,它不會使用數字格式進行格式化,因爲它已經是一個字符串和格式字符串需要一個數字。

0

如果你不想使用正則表達式,也可以使用String這樣的方法來獲得格式化的字符串值。