J'essaie de créer une fonction qui formate les numéros de téléphone américains, en espérant ne pas avoir à parcourir chaque chiffre en boucle.
Lorsque 10 chiffres sont introduits, tout va bien. Cependant, lorsque plus de 10 chiffres sont entrés, le problème se pose. Je veux que la méthode String.Format ajoute les chiffres de l'extension sur la droite. Par exemple :
Lorsque 14 chiffres sont entrés, le résultat devrait être :(444)555-2222 x8888 Si l'on introduit 12 chiffres, le résultat devrait être :(444)555-2222 x8888 etc. Cependant, le résultat que j'obtiens avec ma tentative actuelle est le suivant : En passant par 12 chiffres, on obtient cette chaîne '() -949 x555444433'.
Voici ce que j'ai jusqu'à présent.
public static string _FormatPhone(object phonevalue)
{
Int64 phoneDigits;
if (Int64.TryParse(phonevalue.ToString(), out phoneDigits))
{
string cleanPhoneDigits = phoneDigits.ToString();
int digitCount = cleanPhoneDigits.Length;
if (digitCount == 10)
return String.Format("{0:(###) ###-####}", phoneDigits);
else if (digitCount > 10)
return String.Format("{0:(###) ###-#### x#########}", phoneDigits);
else
return cleanPhoneDigits;
}
return "Format Err#";
}
Merci d'avance.