Asp.net - formatter un numéro de téléphone en affichage français

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 990 fois - Téléchargée 37 fois

Contenu du snippet

Souvent avec des applications où l'on laisse plusieurs utilisateurs gérer des données, on voit apparaître des différences dans celles-ci.
Un classique est le Numéro de Téléphone (ou Fax) qui chez certains se met en xx.xx.xx.xx.xx, d'autres xx-xx-xx-xx-xx, ou encore xx/xx/xx/xx/xx, ...

On voit donc ressortir une différence entre les données et sur un affichage de type listing, le rendu n'est pas très intéressant. Il faut donc voir à formatter cet affichage en ne tenant pas compte de ce que l'utilisateur à rentrer et en choisissant son séparateur (qui dans mon cas sera le ".").

Source / Exemple :


' La fonction est très simple et fait une suppression des caractères et
' remplace ces ponctuations par notre séparateur

' -----------------------------------------------------
Public Function FormatteTelephone(ByVal ChaineTel As String) As String
 ' Renvoie le Numéro de téléphone formatté selon le format Francais :
 '           - xx.xx.xx.xx.xx
 ' Supprime les characteres possibles (- / . \  qui peuvent se présenter)
  If ChaineTel <> "" And Not ChaineTel Is Nothing Then
   Dim Séparateur As Char = "."
   Dim Temp As String = ""
   Dim TempResult As String = ""
   Dim longueur As Integer = 0
   Dim i As Integer = 0

    ' Suppression des characteres parasites
    Temp = Replace(ChaineTel, "-", "")
    Temp = Replace(Temp, ".", "")
    Temp = Replace(Temp, "/", "")
    Temp = Replace(Temp, ";", "")
    Temp = Replace(Temp, ":", "")
    Temp = Replace(Temp, ",", "")
    Temp = Replace(Temp, "\", "")
    Temp = Replace(Temp, " ", "")

    longueur = Temp.Length
    
    If (longueur Mod 2) <> 0 Then
     longueur += 1
    End If
    For i = 0 To (longueur - 2) Step 2
     TempResult &= Mid(Temp, i + 1, 2)
    If i <> (longueur - 2) Then
     TempResult &= Séparateur
    End If
   Next
  Return TempResult
 End If
End Function

' -----------------------------------------------------
'L'appel se fait simplement comme ceci :

MonLabel.text = FormatteTelephone(Trim(MonChampTelBase))

Conclusion :


Il s'agit d'une simple fonction que vous pouvez adapter facilement.

Bon coding.

Romelard Fabrice (Alias F___)

A voir également

Ajouter un commentaire

Commentaires

jesusonline
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
16 -
Pas mal ta source, assez simpe mais peut tj servir mais au lieu de tous tes replace, je pense qu'il serait preferable de faire une boucle et que tu mettes tous les numeros sauf les caracteres numeriques

for i = 1 to 255
if i >100 or i <110 then
exit for
end if
Temp = Replace(Temp, chr(i), "")
next

les nombres 100 et 110 sont pris au hasard je connais pas par coeur les codes de caractères, mais c juste pour te montrer ce que je pensais :)

@+
dim3311
Messages postés
13
Date d'inscription
dimanche 16 septembre 2001
Statut
Membre
Dernière intervention
12 juillet 2007
-
pour ce types de replace en masse, il est plus économique et estétique d'utiliser les regular expressions

et puis, si tu veux avancer sur le sujet, gère aussi les doubles espaces comme 01 45 12 ...
et ce type de systeme : +33660...

y'a encore du boulot :)

A +
dim3311
Messages postés
13
Date d'inscription
dimanche 16 septembre 2001
Statut
Membre
Dernière intervention
12 juillet 2007
-
sorry pour les doubles espaces, remarque annulée :)
cs_fabrice69
Messages postés
1766
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
4 -
J'ai précisé à la fin de l'article :
"Il s'agit d'une simple fonction que vous pouvez adapter facilement."

Si tu as des +33 < tu adaptes, dans le cas où j'ai développé cette 'petite' fonction, je ne cherchais pas la performance mais juste que ca fasse ce que j'avais besoin.

Merci tout de même pour les remarque ca servira sans doute à d'autres qui reprendront cette source.

F___

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.