IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Pregmatch sur un numéro de téléphone international [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 104
    Points : 64
    Points
    64
    Par défaut Pregmatch sur un numéro de téléphone international
    Salut,

    Je cherches à valider ce genre de numéro :

    +1.514.523.5635

    Le + n'est pas obligatoire
    Les . peuvent etre des -

    Ce pregmatch fonctionne bien, au détail pres que l'on peut mettre un . ou - à la place du + au début... Pouvez vous me dire ce qui cloche ?

    Merci.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (!preg_match('/^\+?[0-9\.\-]+$/', post('phone_number'))) {
         $user->phone_number = post('phone_number');
    }

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = '/^\+?[^.\-][0-9\.\-]+$/';
    Et au lieu de . ou -, il arrive qu'on mette des espaces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = '/^\+?[^.\-][0-9\.\- ]+$/';
    Par contre, ça ne vérifie pas un nombre minimum de numéros.

    On peut aller plus loin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = '#^\+?\d{1,3}([ .-]?\d{1,4}){1,5}$#';
    • \+? => + ou pas
    • d{1,3} => suivi de 1 à 3 chiffres
    • (\d{1,4}[ .-]?){1,5} => de 1 à 5 fois (éventuellement ".", "-" ou espace suivi de 1 à 4 chiffres)
    Dernière modification par Invité ; 14/08/2013 à 10h50.

  3. #3
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    avec ceci cela devrait rouler :
    ^\+?\d[\d .-]+$

  4. #4
    Invité
    Invité(e)
    Par défaut
    @rawsrc
    Oui, sauf si on veut s'en tenir à un numéro de tél,
    sans pouvoir passer le nombre PI à la xxxième décimale (128 000 premières décimales de π) !
    Dernière modification par Invité ; 14/08/2013 à 10h29.

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Ouaip, mais bon le post initial ne pose aucunes limites de quoi que ce soit dans la validation dudit numéro mis à part sa composition.
    Après, comme dans presque tous les cas, le numéro de téléphone n'est jamais validé, c'est une info textuelle de plus.
    Si ça leur chante, il peuvent saisir PI ou le Nombre d'or (1.61803398875) qu'on leur en voudra pas.

    Faut dire que la gestion des numéros de téléphone peut vite devenir une usine à gaz : y a des années de ça, j'ai eu un cas où la boite n'avait qu'un seul numéro de téléphone avec un serveur vocal et tu devais dire le numéro de poste que tu souhaitais. Et ben pour gérer ça dans un répertoire avec une validation du numéro de téléphone, ça n'a pas été une mince affaire (toute le monde avait le même numéro et il fallait insérer ce fichu numéro de poste de 3 à 5 digits) et gérer le multiposte... dans la même zone de texte qui servait qu'au numéro de téléphone => un vrai plaisir, crois-moi.

  6. #6
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 104
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Salut,

    avec ceci cela devrait rouler :
    ^\+?\d[\d .-]+$
    Hey !

    Merci j'ai utilisé celui ci, a l'exception que j'ai enlevé les espaces car je n'en veux pas dans la validation.

    Effectivement je n'ai pas mis de limitation de nombre de numéros car c'est un input pour l'international et je connais pas le nombre max. de chiffres dans un meme numéro.

    Je valide la réponse, thanks !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/01/2015, 22h06
  2. [AC-2003] Filtre sur numéro de téléphone
    Par FabFabien dans le forum VBA Access
    Réponses: 1
    Dernier message: 20/07/2009, 08h48
  3. [RegEx] Résultat d'un regexp sur un numéro de téléphone
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 27/06/2008, 21h57
  4. Réponses: 4
    Dernier message: 31/08/2007, 11h32
  5. récuperation d'un numéro de téléphone
    Par herzleid dans le forum Delphi
    Réponses: 4
    Dernier message: 17/07/2007, 09h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo