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 :

Expressions regulieres et Javascript : les operateurs


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Expressions regulieres et Javascript : les operateurs
    Salut,

    Ce n'est pas le premier post sur les expressions regulieres et le javascript, mais je n'ai pas trouvé de reponse a la question qui m'obsede depuis maintenant qques jours !!!

    Considerons le cas suivant : je genere des expressions regulieres en Java. Ces expressions regulieres me servent a faire des controles de validation coté serveur pour valider les inputs utilisateurs à la sauvegarde et egalement coté client pour valider ces memes inputs, mais cette fois ci lors de la saisie de l'info sur le client HTML. Ainsi les expressions regulieres que je genere sont utilisees a la fois en java (via le package java.util.regex) et en javascript (via l'objet RegExp).

    Prenons par exemple celle-ci : [\w&&[^a-z]]{3}. Elle signifie (si je ne me trompe pas) qu'on veut 3 characteres qui soient des alphanumeriques mais pas des minuscules. En java, les Strings "123", "AAA" , "1DD" sont donc valides du point de vue des cette expression. En revanche pas en javascript !!!! Du coup j'ai fouillé et j'ai trouvé que l'opérateur AND (&&) n'a pas de signification en javascript !!!

    Donc voici ma question : comment se fait-il que cet operateur n'existe pas ? L'operateur OR (|) existe pas pas le AND ?? Si vous avez des liens ou des explications sur le sujet ca m'interresse. Si vous avez aussi des alternatives pour contourner ca, faites moi signe !!!

  2. #2
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    salut,

    effectivement je crois que le AND n'existe pas en javascript pour les expressions régulières (ou alors on m'aurait menti à l'insu de mon plein gré).

    "pourquoi ?" ça il faut poser la question à ceux qui font le javascript

  3. #3
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 141
    Points
    11 141
    Par défaut
    bonjour,


    Elle signifie (si je ne me trompe pas) qu'on veut 3 characteres qui soient des alphanumeriques mais pas des minuscules.
    Tu veux des caractères alphabétiques ou alphanumériques ?

    3 caractères alphabétiques et en majucule
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [A-Z]{3} // 3 caractères alphabétiques en majuscules

    3 caractères alphanumériques et en majucule
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [A-Z0-9]{3} // 3 caractères alphabétiques (de A à Z) et numériques (de 0 à 9)


    Ton expression régulière en java me semble bien étrange

  4. #4
    Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci pour vos reponses les gars.

    C'est vrai que la question est maintenant comment contourner l'absence de cet operateur en javascript ? Je reconnais que l'expression reguliere [\w&&[^a-z]]{3} est un peu etrange. Ceci s'explique par le fait qu'elle est generee suite a l'analyse de certaines infos relatives a l'application sur laquelle je bosse. En revanche elle est valide en java et, de ce fait, a un sens.

    La ou je nage c'est que je me rends compte qu'il va falloire que je modifie des trucs pour la rendre utilisable coté javascript. Et c'est l'abscence de l'operateur AND qui me pose un gros soucis. Comment dire "je veux que tel premier char fasse partie d'un ensemble A ET pas d'un ensemble B " ? Dans le fond pour le moment c'est ca mon soucis.

    J'espere que je me suis bien expliqué...

  5. #5
    Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Pour illustrer mes propos, je veux ecrire une une expression reguliere pour qualifier les mots suivants : les mots de 3 chars ou chaque char est une majuscule ou un numerique sauf les voyelles majuscules.

    J'ai essayé ca : [A-Z0-1[^AEIOU]]{3}. En java, c'est correct mais en javascipt c'est pas bon !! Je ne comprends pas pourquoi !!!

  6. #6
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 141
    Points
    11 141
    Par défaut
    Citation Envoyé par olive57GT Voir le message
    Pour illustrer mes propos, je veux ecrire une une expression reguliere pour qualifier les mots suivants : les mots de 3 chars ou chaque char est une majuscule ou un numerique sauf les voyelles majuscules.

    [B-DF-HJ-NP-TV-WZ0-9]{3}
    ne prend que les consonnes ou les chiffres de 0 à 9 (si je ne me suis pas trompé )

  7. #7
    Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Auteur Voir le message
    [B-DF-HJ-NP-TV-WZ0-9]{3}
    ne prend que les consonnes ou les chiffres de 0 à 9 (si je ne me suis pas trompé )
    Salut Auteur !

    Ce que je comprends de ce que tu me suggères c'est que je dois me debrouiller pour calculer moi meme l'intersection entre les differents ensembles auxquels mon char doit appartenir et pas demander à l'objet RegExp de le faire comme en java ? C'est ce que tu as fait et en effet ca repond a la definition et en plus ca marche en JS !!

    Bon bah c'est pas gagné ca ....

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 60
    Points : 68
    Points
    68
    Par défaut
    ... autant faire deux testes sur tes inputs au niveau du javascript avant de le valider !!!

Discussions similaires

  1. [RegEx] Expression reguliere pour supprimer les accents
    Par cowboydeluxe dans le forum Langage
    Réponses: 2
    Dernier message: 22/05/2009, 19h11
  2. expression reguliere qui accepte les champs vide
    Par mystro7200 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/03/2009, 12h02
  3. expressions regulieres et javascript
    Par arti2004 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/10/2008, 16h34
  4. Expression reguliere pour enlever les commentaires
    Par fafoula dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/07/2008, 10h00
  5. Bug dans les expressions régulières ?
    Par SergioF dans le forum Linux
    Réponses: 8
    Dernier message: 12/05/2004, 15h14

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