C# – Converting a normalized phone number to a user-friendly version

cformattingphone-numberregex

In my C# application, I use a regular expression to validate the basic format of a US phone number to make sure that the user isn't just entering bogus data. Then, I strip out everything except numbers, so this:

(123) 456-7890 x1234

becomes

12345678901234

in the database. In various parts of my application, however, I would like to convert this normalized phone number back to

(123) 456-7890 x1234

What's the best way to do such a thing? (Don't worry about accounting for international phone number formats, by the way.)

Best Answer

String.Format("{0:(###) ###-#### x ###}", double.Parse("1234567890123"))

Will result in (123) 456-7890 x 123