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éguliere (chaine) Regexp


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Décembre 2005
    Messages : 117
    Points : 48
    Points
    48
    Par défaut Expression Réguliere (chaine) Regexp
    Bonjour,

    je voudrais savoir si il possible de chercher une occurence d'un élément d'une chaine dans une autre chaine, tout ça sans faire de boucles imbriquées, et sans utiliser d'indexOf().
    Je souhaiterais utiliser une expression régulière qui à mon gout est bcp plus rapide.
    Je vous explique mon problème:

    J'ai une chaine 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var chaine1 = "202|608|71|682|433|511|19|84|77|46|55" ;
    et une autre chaine 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var chaine2 = "841|433" ;
    Je souhaiterai savoir avec une expression régulière si une occurence de chaine2 (soit 841 soir 433) se trouve dans la chaine 1.
    Le seul truc est de savoir si c'est true or false, après ou l'occurence se trouve, ce n'est pas important.

    Pouvez vous m'éclaicir, car j'ai un peu de mal avec les Regexp.

    Merci d'avance

  2. #2
    Expert éminent

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

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

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut Re: Expression Réguliere (chaine) Regexp
    Citation Envoyé par Mike35
    Je souhaiterais utiliser une expression régulière qui à mon gout est bcp plus rapide.
    Tiens, c'est nouveau ça, la rapidité est une question de goût

    Citation Envoyé par Mike35
    Pouvez vous m'éclaicir, car j'ai un peu de mal avec les Regexp.
    T'éclaircir

    Sinon, pour ta question, tu fais simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    reg = new RegExp(chaine2);
    alert(reg.test(chaine1));
    Normalement, ça devrait marcher

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Décembre 2005
    Messages : 117
    Points : 48
    Points
    48
    Par défaut
    En fait ça ne marche qu'à moitié, disons que si je mets chaine2 = "841|1", àa devrait me renvoyer false, or ça me renvoie true...
    Car il trouve bien le 1 dans chaine1.
    Ce qui se passe c'est qu'il faudrait délimiter les champs....

    Si tu vois une solution

  4. #4
    Expert éminent

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

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

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut Re: Expression Réguliere (chaine) Regexp
    Citation Envoyé par Mike35
    Je souhaiterai savoir avec une expression régulière si une occurence de chaine2 (soit 841 soir 433) se trouve dans la chaine 1.
    Le seul truc est de savoir si c'est true or false, après ou l'occurence se trouve, ce n'est pas important.
    Citation Envoyé par Mike35
    En fait ça ne marche qu'à moitié, disons que si je mets chaine2 = "841|1", àa devrait me renvoyer false, or ça me renvoie true...
    Car il trouve bien le 1 dans chaine1.
    Ce qui se passe c'est qu'il faudrait délimiter les champs....
    Je proteste, c'était absolument pas dans les spécifs!!!!!

    Alors sinon, pour la solution, je te conseille:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    reg = new RegExp("\|("+chaine2+")\|"); 
    alert(reg.test("|"+chaine1+"|"));
    L'ajout dans chaine 1, c'est juste pour éviter les cas particuliers au bord de la chaine....

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Décembre 2005
    Messages : 117
    Points : 48
    Points
    48
    Par défaut
    Désolé, j'avais pas bien défini mes spécifs !!!!
    Ceci dit, ça marche toujours pas, il me renvoie toujours true quelque soient le contenu de chaine1...

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/05/2011, 14h59
  2. expression réguliere sur une chaine de caractere
    Par delilou dans le forum Général Java
    Réponses: 6
    Dernier message: 22/04/2011, 17h09
  3. Réponses: 11
    Dernier message: 19/04/2011, 15h30
  4. expression réguliere et objet RegExp
    Par cinou01 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 22/11/2009, 11h47
  5. Réponses: 3
    Dernier message: 12/06/2009, 09h16

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