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 :

Autoriser deux possibilités [RegExp]


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 760
    Par défaut Autoriser deux possibilités
    Bonjour,

    je suis en train de me battre avec une expression régulière (et c'est elle qui gagne! ) pour n'autoriser que :

    chiffres 0 à 9 (exemple 12 / 2 / 0 ) + un tiret (-) + chiffres 0 à 9

    sous forme 1-12 ou 0-12 ou 12 (seul) , mais j’aimerais également autoriser le terme "NA"

    return /^(?!-)\d*[-]?\d*$|[N,A]/.test(value); });.
    Celui.ci est OK pour la séquence de chiffres 1-2 etc, mais autorise toutes les lettre si on commence par le N

    Une idée ?


    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
      $("#Equipes").inputFilter(function(value) {
        return /^(?!-)\d*[-]?\d*$|[N,A]/.test(value); });
     
     
    // Ajoute un filtre sur les entrees selon le regex en paramèetre 
    (function($) {
      $.fn.inputFilter = function(inputFilter) {
        return this.on("input keydown keyup mousedown mouseup select contextmenu drop", function() {
          if (inputFilter(this.value)) {
            this.oldValue = this.value;
            this.oldSelectionStart = this.selectionStart;
            this.oldSelectionEnd = this.selectionEnd;
          } else if (this.hasOwnProperty("oldValue")) {
            this.value = this.oldValue;
            this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);
          }
        });
      };
    }(jQuery));

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    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 986
    Par défaut
    Tu peux mettre en facteur les ancres de début et fin de chaîne pour les deux branches pour être sûr de couvrir toute la chaîne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^(?:\d+(?:-\d+)?|NA)$/

    Tu peux aussi écrire la pattern comme ça en utilisant un word-boundary pour t'assurer qu'il n'y a pas de tiret au début :

    Note qu'à la différence de ta pattern, celles-ci n'autorisent pas la chaîne vide (si tu veux le faire il suffit rendre le groupe principal optionnel).

  3. #3
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    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 986
    Par défaut
    Oups, je viens de comprendre que tu ne veux pas seulement valider une entrée utilisateur mais que tu veux la contrôler tout au long de la frappe. Donc dans ce cas la pattern serait plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^(?:\b\d*-?\d*|NA?)?$/
    Mais dans cette perspective, tu devras au final contrôler que l'utilisateur n'a pas juste entré N ou qu'il ne s'est pas arrêté au tiret. (La pattern précédente sera quand même utile pour ce faire).

  4. #4
    Membre chevronné Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 760
    Par défaut
    C'est bien en cours de frappe, et je me suis basé sur ton code pour mes autres besoins de validation de mon formulaire

    Un tout grand MERCI à toi pour ton coup de main !!



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

Discussions similaires

  1. [Débutant]Possibilité de faire deux evenement avec onclick
    Par khalidlyon dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/02/2008, 16h45
  2. StringTokeniser avec deux possibilité
    Par jejermoa dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2007, 17h59
  3. [C#][v1.1]autoriser deux chiffres dans un numericUpDown
    Par ChristopheOce dans le forum Windows Forms
    Réponses: 3
    Dernier message: 28/03/2007, 14h32
  4. [RegEx] Gérer deux possibilités et leur associer une valeur 0/1
    Par speed_man002 dans le forum Langage
    Réponses: 3
    Dernier message: 21/09/2005, 18h32
  5. Deux disques durs = quatre possibilités
    Par zakfa dans le forum Composants
    Réponses: 11
    Dernier message: 03/02/2005, 11h49

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