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 :

Passer des intervales du genre [a..z] comme en Pascal


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de FrankOVD
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juin 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2005
    Messages : 438
    Par défaut Passer des intervales du genre [a..z] comme en Pascal
    Bonjour,

    D'abord, est-ce possible de faire un truc qui ressemble a du Pascal du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    switch(maChaine)
        case [a..z] : //code
                          break;
        case [1..6] : //code
                          break;
        ...
    ..ou est-ce impossible comme en C?
    Quelle serait alors la meilleure façon de faire?
    Comment utiliser l'opérateur in?

  2. #2
    Membre émérite
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Par défaut
    Impossible.
    Meilleur façon de faire : ça dépend de ce que tu veux faire.
    "in" n'a rien à voir avec de que tu cherche à faire.
    "in" sert dans une boucle for ... in pour énumérer les propriétés d'un objet.

  3. #3
    Membre éclairé Avatar de FrankOVD
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juin 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2005
    Messages : 438
    Par défaut
    J'ai trouvé ce code sur le net:
    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
     
    var numb = '0123456789';
    var lwr = 'abcdefghijklmnopqrstuvwxyz';
    var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
     
    function isValid(parm,val) {
      if (parm == "") return false;
      for (i=0; i<parm.length; i++) {
        if (val.indexOf(parm.charAt(i),0) == -1) return false;
      }
      return true;
    }
     
    function isNum(parm) {return isValid(parm,numb);}
    function isLower(parm) {return isValid(parm,lwr);}
    function isUpper(parm) {return isValid(parm,upr);}
    function isAlpha(parm) {return isValid(parm,lwr+upr);}
    function isAlphanum(parm) {return isValid(parm,lwr+upr+numb);}
    Il sert à faire plein de validations et je n'aurai qu'à l'adapter

  4. #4
    Membre émérite
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Par défaut
    Pourquoi ne pas simplement utiliser des regex ?

  5. #5
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    beurk.

    Regarde du coté des expressions régulières, ca ira mieux, et ça ressemblera bien plus à tes ranges...

    Pour tester si une chaine est composée de minuscules:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /^[a-z]*$/.test(chaine);
    Renvoie true ou false, et est quand même plus puissant et propre que le code que tu as récupéré....

  6. #6
    Membre éclairé Avatar de FrankOVD
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juin 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2005
    Messages : 438
    Par défaut
    Hmm...

    alors ça marche où ça marche pas [a..z]?

    Et c'est quoi ça regex?

  7. #7
    Membre éclairé Avatar de FrankOVD
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juin 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2005
    Messages : 438
    Par défaut
    Je veux bien faire du code meilleur que ça mais ce n'est pas avec aussi peu d'aide et de précision que j'y arriverai. Si je pose cette question c'est que je n'ai jamais fait de trucs du genre auparavant en javascript.

  8. #8
    Membre émérite
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Par défaut
    non, les listes du genre [0..9] n'existent pas en javascript.
    Les regex sont les expressions régulières (aussi appellés expressions rationnels).
    En gros ce sont des motifs qui peuvent ou non corresspondre à une chaine de caractère.

  9. #9
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Les ranges [a..z] n'existent pas en javaScript.

    Cependant, javaScript supporte les expressions regulières, qui sont un outil informatique très puissant. Les expressions régulières sont des concepts informatiques introduits en particulier par Perl, qui permettent de faire de très puissante recherche de motif dans une chaine de caractère, extraction et remplacement de motif. En pariculier vérifier qu'une chaine de caractère est en lettres minuscules.

    Si tu veux plus d'infos sur le sujet:
    http://virtual.park.uga.edu/humcomp/perl/regex2a.html
    http://www.webreference.com/js/column5/
    (en anglais)

Discussions similaires

  1. [C#] Passer des contrôles comme parametre dans une fonction
    Par sara21 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 20/09/2006, 13h05
  2. problème our passer des string dans tableau d'int
    Par Battosaiii dans le forum C++
    Réponses: 9
    Dernier message: 15/07/2004, 17h42
  3. Réponses: 5
    Dernier message: 08/03/2004, 10h28
  4. Passer des Image avec SOAP
    Par pef421 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 01/03/2004, 21h32
  5. [CR7][VB6] Passer des infos de Vb vers CR
    Par tripper.dim dans le forum SDK
    Réponses: 2
    Dernier message: 13/11/2003, 13h30

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