String.Format不格式化电话号码

时间:2011-05-06 07:34:58

标签: c# asp.net string-formatting

String.Format("{0:###-###-####}", customer.ContactHome); //NOT working (9891205789)

BUT

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

但由于某种原因,我不想投电话。如果不进行投射,我该如何格式化手机?

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分:5)

您在字符串"{0:###-###-####}"上使用数字格式化(customer.ContactHome),这就是它无法正常工作的原因。

答案 2 :(得分:0)

如果customer.ContactHomestring,则不会使用数字格式进行格式化,因为它已经是字符串,格式字符串需要数字。

答案 3 :(得分:0)

如果您不想投射您的价值并使用正则表达式,您可以始终使用StringSubstring方法来获取格式化的字符串值。