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 :

regexp qui accepte les caractères numériques et les tirets [RegExp]


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 486
    Billets dans le blog
    1
    Par défaut regexp qui accepte les caractères numériques et les tirets
    Bonsoir,

    j'ai une regexp qui sert à contrôler un champ de saisie d'un numéro de téléphone, mais actuellement, elle n'accepte que les caractères numériques (éventuellement précédés par un + ou un -. Or je voudrais qu'elle accepte aussi les tirets et les espaces. Comment adapter la regexp suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var re2 = /^[+-]?\d+(\.d+)?(e[-+]?\d+)?$/i;
    if( !re2.test( objForm.officenumber.value ) )
        {
          alert( "The field \"officenumber\" must contain a decimal value !" );
          return false;
        }

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Par défaut
    devrait convenir pour un numéro de téléphone français, avec un tiré comme séparateur

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 486
    Billets dans le blog
    1
    Par défaut
    Merci,

    je crois la comprendre alors que je ne comprenais pas la précédente.
    D'ailleurs, une question : le [+-] ne signifie-t-il pas qu'un + ou un - peut être mis optionnellement au début ?
    Mais petit bémol : ça ne serait pas que pour des numéros français (notamment, autoriser les numéros américains qui peuvent être du type 123-456-789 (je crois, pas sûr), et le séparateur est optionnel (ça peut être un tiret ou un espace ou rien)

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Par défaut
    une question : le [+-] ne signifie-t-il pas qu'un + ou un - peut être mis optionnellement au début ?
    En faite c'est l'opérateur ? qui définit le caractère optionnel du modèle.
    Plus précisément ? définit une redondance null ou unique du modèle.
    Les chrochet permettre juste de regrouper plusieurs valeur possible pour un opérateur. Dans ce cas, soit un + ou un - moins ...

    Sinon,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg = /^0\d(?:(?:-\d{2}){4}|(?:\s\d{2}){4}|\d{8})$/;
    permet aussi les espaces ou aucun séparateur

    Pour le modèle USA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^\d{3}(?:(?:-\d{3}){2}|(?:\s\d{3}){2}|\d{6})$/
    Perso je garderais les deux règles séparément, car elle pourront toujours servir ailleurs ...

  5. #5
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    pour une suite de 5 paires de chiffres séparés pas . - ou espace

    a toi de nous dire exactement ce que tu veux valider ...

    si tu veux que le séparateur soit le même entre chaque paire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^(\d{2}([ .-]))(\d{2}\2){3}\d{2}$
    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 !

  6. #6
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 486
    Billets dans le blog
    1
    Par défaut
    Merci de me répondre, mais comme j'aimerais comprendre, j'ai un peu de mal avec la 2e, notamment avec
    (\d{2}\2){3}
    Peux-tu expliquer ? Et d'autre part, dans la réponse de kimjoa, il y a des ?: et pas dans la tienne ; peux-tu expliquer, d'autant plus que j'ai du mal à comprendre leur rôle.
    Sinon, ce que je voudrais, c'est une liste de 10 nombres, éventuellement précédés par un +, et éventuellement avec des séparateurs (tiret (-), espace ou rien) ; mais comme la place de ces séparateurs dépend des pays, on autorise les 2 formats :
    01sep23sep45sep67sep89 ou 012sep345sep6789

    Je corrige ce que je voudrais (et je n'y suis pas arrivé) ; pour accepter les indicatifs internationaux (mais pas forcément présents) et pour être compatible avec le format de tous pays, j'imagine le format suivant :
    +(optionnel)suite de 9 à 17 caractères (des chiffres ou tiret ou espace)
    Explication du nombre entre 9 et 17 :
    • indicatif international ou pas : 0 à 2
    • séparateurs possibles : 0 à 5
    • numéro : 9 à 10

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

Discussions similaires

  1. récupérer les caractères numériques
    Par le_chomeur dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 14/11/2008, 16h58
  2. Réponses: 2
    Dernier message: 08/07/2008, 11h50
  3. Réponses: 6
    Dernier message: 10/09/2007, 10h44
  4. JavaScript/Zone de texte : n'accepter que les caractères numériques
    Par arkienou dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 26/07/2006, 14h16
  5. Réponses: 5
    Dernier message: 09/05/2006, 13h27

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