2011-05-06 59 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这样的方法来获得格式化的字符串值。