2011-01-20 26 views
5

tengo un valor de cadena 1233873600 en C# y tengo que convertirlo a 123-387-7300 en C#Cadena de formato como el número de teléfono en C#

¿Hay alguna función incorporada que hará que en C#?

+0

no, no, pero puede escribir fácilmente el suyo. –

+0

posible duplicado de [Cómo formatear una cadena como un número de teléfono en C#] (http://stackoverflow.com/questions/188510/how-to-format-a-string-as-a-telephone-number-in- c) – stuartd

Respuesta

0

Es posible que desee utilizar regex para esto. La expresión regular números de teléfonos en América del Norte se ve así

^(\(?[0-9]{3}\)?)?\-?[0-9]{3}\-?[0-9]{4}$ 

Creo que se puede utilizar Regex.Replace método en C#.

+0

usando una cadena de formato sería el método preferido para hacer esto. tanto más legible como computacionalmente más rápido. – cazlab

8

Eche su cadena a un largo y use el formato "{0:### ### ####}";

string.Format("{0:(###) ###-####}", 1112223333); 
3
string phone = "1233873600".Insert(6, "-").Insert(3, "-"); 
1

Se puede utilizar un método de ayuda simple que se llevará a la cadena, esterilizar la entrada con el fin de eliminar los espacios o caracteres especiales no deseados que se utiliza como separador, y luego usar el método ToString incorporado. Si busca varias longitudes, también puede asegurarse de que el formato salga como mejor le parezca. Por ejemplo:

public string FormatPhoneNumber(string phoneNumber) 
    { 
     string originalValue = phoneNumber; 

     phoneNumber= new System.Text.RegularExpressions.Regex(@"\D") 
      .Replace(phoneNumber, string.Empty); 

     value = value.TrimStart('1'); 

     if (phoneNumber.Length == 7) 

      return Convert.ToInt64(value).ToString("###-####"); 
     if (phoneNumber.Length == 9) 

      return Convert.ToInt64(originalValue).ToString("###-###-####"); 
     if (phoneNumber.Length == 10) 

      return Convert.ToInt64(value).ToString("###-###-####"); 

     if (phoneNumber.Length > 10) 
      return Convert.ToInt64(phoneNumber) 
       .ToString("###-###-#### " + new String('#', (phoneNumber.Length - 10))); 

     return phoneNumber; 
    } 
Cuestiones relacionadas