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

JavaScript Discussion :

Expression régulière téléphone plusieurs formats


Sujet :

JavaScript

  1. #1
    Débutant  
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Points : 170
    Points
    170
    Par défaut Expression régulière téléphone plusieurs formats
    Bonjour à tous
    voici mon fichier de validation en jquery
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <script type='text/javascript'>
     
    $(document).ready(function() {
    function randomNumber(min, max) {
            return Math.floor(Math.random() * (max - min + 1) + min);
        };
        $('#captchaOperation').html([randomNumber(1, 100), '+', randomNumber(1, 200), '='].join(' '));
     
        $('#defaultForm').formValidation({
     
     
            message: 'Valeur incorrecte',
            icon: {
                valid: 'glyphicon glyphicon-ok',
                invalid: 'glyphicon glyphicon-remove',
                validating: 'glyphicon glyphicon-refresh'
            },
     
            fields: {
               tel: {
                    validators: {
     
                        notEmpty: {
                            message: 'Veuillez entrer le numéro de téléphone'
                        },
     
                        regexp: {
                            regexp: /^(0)[1-9]( [0-9]{2}){4}  | (0)[1-9][0-9]( [0-9]{2}){3}$/,
     
                            message: 'Format invalide de téléphone'
                        }
                     }
                },
                }
        });
    });
    </script>
    le problème est la validation ne marche pas il y a une erreur dans l'expression régulière

  2. #2
    Membre confirmé Avatar de Diablo_22
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 498
    Points : 490
    Points
    490
    Par défaut
    Bonjour,

    essaye ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^+33\s((0)|0)?[1-9]{1}(\s[0-9]{2}){4}$
    Marche pour +33 6 05 04 03 02, +33 06 05 04 03 02 et +33 (0)6 05 04 03 02
    N'oubliez pas la balise

    est ton ami mais quand Google ne trouve pas quelque choses, il demande à Chuck Norris.

  3. #3
    Débutant  
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Points : 170
    Points
    170
    Par défaut
    merci à vous
    ce que je cherche est l'expression des deux numéros suivants
    0 12 12 23 23 ou 05 55 52 52 52 dans une même expression
    merci

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Voici une expression qui valides les deux propositions
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Débutant  
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Points : 170
    Points
    170
    Par défaut
    non ça ne marche pas pour ces deux types de numéros: 0X XX XX XX XX ou 0XX XX XX XX

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 129
    Points
    44 129
    Par défaut
    Bonjour,
    0 12 12 23 23 ou 05 55 52 52 52 dans une même expression
    types de numéros: 0X XX XX XX XX ou 0XX XX XX XX
    pas toujours facile de répondre à un cahier des charge qui évolue

  7. #7
    Débutant  
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Points : 170
    Points
    170
    Par défaut
    désolée c'était juste erreur de frappe pardon pour la première fois
    désolée mais mon problème est quand je mets ça dans mon expression:/^(0)[1-9]( [0-9]{2}){4}$/ ça marche
    et quand je mets seulement ça /^(0)[1-9][0-9]( [0-9]{2}){3}$/ ça marche bien
    mon soucis est quand je fait le ou logique en les 2 expressions

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Si le cahier des charges n'évolue pas ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^0\d{1,2}(\s\d{2}){3,4}
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre confirmé Avatar de Diablo_22
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 498
    Points : 490
    Points
    490
    Par défaut
    Citation Envoyé par sky88 Voir le message
    non ça ne marche pas pour ces deux types de numéros: 0X XX XX XX XX ou 0XX XX XX XX
    il doit être en méthode Agile
    N'oubliez pas la balise

    est ton ami mais quand Google ne trouve pas quelque choses, il demande à Chuck Norris.

  10. #10
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Il suffit de placer une alternative | pour les parties qui ne sont pas communes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^0[1-9](?:[0-9]| [0-9]{2})(?: [0-9]{2}){3}$/
    Vu qu'il s'agit de valider un format et pas d'extraire du contenu, les groupes de capture (...) sont remplacés par des groupes non-capturant (?:...) (petite économie de mémoire et de temps de traitement).

    Pour trois pauvres répétitions, on peut tout aussi bien écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^0[1-9](?:[0-9]| [0-9]{2}) [0-9]{2} [0-9]{2} [0-9]{2}$/
    L'erreur avec /^(0)[1-9]( [0-9]{2}){4} | (0)[1-9][0-9]( [0-9]{2}){3}$/ mis à part les espaces fantaisistes et les groupes inutiles, c'est que les ancres ne sont pas en facteur pour les deux sous-patterns. On a d'un coté ^(0)[1-9]( [0-9]{2}){4} (pas d'ancre de fin de chaîne) et de l'autre (0)[1-9][0-9]( [0-9]{2}){3}$ (pas d'ancre de début de chaîne). Résultat, il peut se passer n'importe quoi après la première ou avant la deuxième. Il te suffisait de recopier les ancres des deux patterns originales:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^(0)[1-9]( [0-9]{2}){4}$|^(0)[1-9][0-9]( [0-9]{2}){3}$/
    ou de les mettre en facteur avec les deux sous-patterns en utilisant un groupe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^((0)[1-9]( [0-9]{2}){4}|(0)[1-9][0-9]( [0-9]{2}){3})$/
    Maintenant pour vérifier une saisie utilisateur comme un numéro, le mieux reste encore de virer tous les espaces avant de contrôler quoi que ce soit.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  11. #11
    Débutant  
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Points : 170
    Points
    170
    Par défaut
    ça marche bien avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /^(0)[1-9]( [0-9]{2}){4}$|^(0)[1-9][0-9]( [0-9]{2}){3}$/
    merci beaucoup CosmoKnacki

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Je trouvais ma solution plus élégante ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^0\d{1,2}(\s\d{2}){3,4}
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    Débutant  
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Points : 170
    Points
    170
    Par défaut
    merci beaucoup c'est vrai et elle est plus courte

  14. #14
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Je trouvais ma solution plus élégante ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^0\d{1,2}(\s\d{2}){3,4}
    C'est plus concis et elle matche bien les deux possibilités certes, mais il lui manque l'ancre de fin de chaîne et quand bien même elle matcherai également des numéros avec ces formats: 0xx xx xx xx xx, 0x xx xx xx, 00x xx xx xx ou 00 xx xx xx xx.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  15. #15
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    oui en effet manque le $ de fin de ligne
    pour ce qui est des types de numéros le cahier des charges à Gilles n'est pas hyper précis sur le sujet ... rien de dit que le numéro ne peut pas commencer par 00 voire 000 ...

    si c'est le cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^0([1-9]\d?)(\s\d{2}){3,4}$
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. Expression régulière sur plusieurs champs
    Par swanmimouni dans le forum Oracle
    Réponses: 3
    Dernier message: 05/06/2013, 15h03
  2. Expression Régulières pour plusieurs remplacements
    Par olivier1209 dans le forum VBScript
    Réponses: 6
    Dernier message: 09/01/2013, 18h58
  3. Besoin d'aide pour remplacer avec expression régulière sur plusieurs lignes
    Par MediaVistaIntel dans le forum Général Python
    Réponses: 11
    Dernier message: 01/12/2011, 14h19
  4. expression régulière sur plusieurs lignes
    Par [Hugo] dans le forum Langage
    Réponses: 6
    Dernier message: 01/07/2008, 12h48
  5. Expression régulières poiur un format et un range
    Par Le-Cortex dans le forum ASP.NET
    Réponses: 4
    Dernier message: 20/11/2007, 15h21

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