2011-01-20 15 views
5

ho un valore stringa 1233,8736 milioni in C# e devo convertirlo in 123-387-7300 in C#Format String come il numero di telefono in C#

C'è qualche funzione in-built che farlo in C#?

+0

no non c'è, ma è possibile scrivere facilmente il proprio. –

+0

possibile duplicato di [Come formattare una stringa come un numero di telefono in C#] (http://stackoverflow.com/questions/188510/how-to-format-a-string-as-a-telephone-number-in- c) – stuartd

risposta

0

Si potrebbe voler utilizzare regex per questo. L'espressione regolare per il Nord America il numero di telefono si presenta così

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

Credo che si può utilizzare Regex.Replace metodo in C#.

+0

utilizzando una stringa di formato sarebbe il metodo preferito di fare questo. entrambi più leggibili e computazionalmente più veloci. – cazlab

8

lanciare la vostra stringa in un lungo e utilizzare il formato "{0:### ### ####}";

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

È possibile utilizzare un metodo semplice di supporto che prenderà la stringa, sterilizzare l'ingresso al fine di rimuovere gli spazi o caratteri speciali non desiderate essere utilizzato come separatore, e quindi utilizzare il metodo ToString incorporato. Se controlli per varie lunghezze, puoi anche assicurarti che il formato esca come meglio credi. Ad esempio:

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; 
    } 
Problemi correlati