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

Ext JS / Sencha Discussion :

Filtre avec regex sur un store


Sujet :

Ext JS / Sencha

  1. #1
    Membre éclairé
    Avatar de abraxis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 439
    Points : 658
    Points
    658
    Par défaut Filtre avec regex sur un store
    Bonjour,

    Je cherche à faire un filtre "ne contient pas" dans un store.
    J'ai essayé la regex suivante :
    Ext.getStore('monStore').filter('DATAINDEX', new RegExp('(?!mavaleur).', 'i'));
    Mais le filtre ne fonctionne pas (j'ai testé dans le code et directement dans firebug).
    Je n'ai aucune erreur.

    La liste des opérateurs dans la doc de Sencha ne contient pas le "not like".
    • <
    • <=
    • =
    • >=
    • >
    • !=
    • in
    • like


    Si vous avez une idée, je suis preneur

    Merci par avance
    # apt-get install freedom

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    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 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Ça ne marche pas parce que l'expression (?!mavaleur). sera vérifiée s'il existe une position dans la chaîne où elle est vrai. Par exemple si on prend la chaîne mavaleur, la pattern échoue à la position du m à cause du lookahead, par contre elle réussie à la position du a.

    Il faut donc composer une pattern qui décrit la chaîne de bout en bout comme par exemple: ^(?:(?!mavaleur).)*$ ou bien un truc plus efficace comme ^[^m]*(?:m(?!avaleur)[^m]*)*$.

    Mais d'après moi le plus simple reste encore d'utiliser une fonction comme filtre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Ext.getStore('monStore').filter({
        filterFn:function (item) {
            return item.get('DATAINDEX').indexOf('mavaleur') === -1;
        }
    });
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  3. #3
    Membre éclairé
    Avatar de abraxis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 439
    Points : 658
    Points
    658
    Par défaut
    Merci CosmoKnacki pour cette regex pas aussi simple que je le pensais et pour l'explication qui va avec .
    # apt-get install freedom

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

Discussions similaires

  1. créer un filtre avec Delphi sur une BD oracle
    Par halimelio dans le forum Bases de données
    Réponses: 13
    Dernier message: 02/07/2013, 21h04
  2. Filtre avec critère sur autre table
    Par dvdavid2009 dans le forum Débuter
    Réponses: 4
    Dernier message: 18/08/2009, 13h48
  3. Réponses: 3
    Dernier message: 22/05/2008, 22h22
  4. Probleme de filtre avec fonction Dlookup sur champ texte
    Par Piloupilou999 dans le forum Access
    Réponses: 5
    Dernier message: 27/01/2007, 22h41
  5. probleme avec des filtres de recherche sur des dates
    Par MCarole dans le forum Access
    Réponses: 2
    Dernier message: 24/07/2006, 10h22

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