9
votes

Comparer des «numéros mobiles» - et / ou un format international

Je reçois des numéros de téléphone à partir d'un périphérique mobile, le format varie d'un format international ou non.

scénario (formats ZA uniquement pour l'exemple):

Les numéros enregistrés dans la base de données sont toujours au format international: +27827177982

Les chiffres que je reçoivent peuvent varier selon E.G. +27827177982 = 278271777982 = 0827177982 - le préfixe international pour le numéro est +27

Comment puis-je correspondre au format international même si je ne reçois pas le format international ???


garder à l'esprit:

Je ne peux pas faire de conversion juste pour 1 région.

Y a-t-il un moyen simple de comparer les numéros de téléphone mobile pour toutes les régions?

Préfixes Plages en quantité de caractères Référence: http://fr.wikipedia.org/wiki/list_of_country_calling_codes < / a>


mes idées:

  • Comparez les 9 derniers caractères du numéro, cela exclut le préfixe de la région ... mais toutes les régions n'ont que "9 caractères excluant le préfixe"?

  • boucle via la base de données comparant les numéros de téléphone un couple par exemple par ex. Vérifiez les 9 derniers numéros - Si aucun match - Vérifiez les 10 derniers, etc. (mais peut causer des correspondances non désirées)


    toute aide serait grandement appréciée


1 commentaires

Connaître le pays d'origine d'au moins un numéro de téléphone (en supposant que vous comparez toujours deux), est très utile ici ... alors vous pouvez construire un algorithme solide ... je l'ai fait plusieurs fois, laissez-moi savoir si vous toujours envie d'assistance :)


3 Réponses :


9
votes

Vous voudrez peut-être rechercher une bibliothèque pour cela. Par exemple, Google's bibliothèque libphonenumber avec un C # port étant ici . En particulier, ces deux méthodes peuvent valoir la peine de regarder (mettre l'accent sur la mine)

isnumbermatch - obtient un niveau de confiance sur le fait que deux chiffres puissent être le même.

getexamplenumber / getexamplenumberbytype - fournit valide exemple de nombres pour tous les pays / régions, avec l'option de spécifiant quel type d'exemple numéro de téléphone est nécessaire.


1 commentaires

Semble très prometteur! Merci! Je vais lui donner un coup et vous le faire savoir.



0
votes

Dans la plupart des pays (les États-Unis étant une exception notable), les numéros non internationaux commencent par une 0. La solution sera donc comme:

  • Si le pays est sur une liste d'exceptions, traitez-la spécialement.
  • sinon
    • Si le premier caractère est 0 , supprimez-le et ajoutez du code de pays international
    • S'assurer que le premier caractère est + .

      Il n'y a aucune réponse facile à cela, car il n'y a pas de règles définies internationalement notamment de la façon dont les numéros de téléphone fonctionnent.


0 commentaires

0
votes

Que diriez-vous de quelque chose comme ça. Ceci est écrit en haut de ma tête: xxx


0 commentaires