String.Format не форматирует номер телефона - PullRequest
2 голосов
/ 06 мая 2011
String.Format("{0:###-###-####}", customer.ContactHome); //NOT working (9891205789)

НО

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

но я не хочу кастовать телефон по какой-то причине. Как мне отформатировать телефон без литья?

Ответы [ 4 ]

7 голосов
/ 06 мая 2011

Если 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);
5 голосов
/ 06 мая 2011

Вы используете числовое форматирование ("{0:###-###-####}") для строки customer.ContactHome, поэтому оно не работает.

0 голосов
/ 06 мая 2011

Если вы не хотите приводить свое значение, а также использовать регулярные выражения, вы всегда можете использовать String методы, такие как Substring , чтобы получить отформатированное строковое значение.

0 голосов
/ 06 мая 2011

Если customer.ContactHome является string, оно не будет отформатировано с использованием числового формата, поскольку это уже строка, а строка формата ожидает число.

...