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 :

Création d'un regex avancé [RegExp]


Sujet :

JavaScript

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut Création d'un regex avancé
    Bonjour,

    Actuellement, j'ai une liste de référence produit.
    Chaque référence produit est constituée des caractères suivants : lettre en majuscule, chiffres, certains caractères spéciaux (".", "/", "-", "*", "_", "(", ")").
    Les références produit ne contiennent pas d'espace.

    J'ai créé un système de recherche qui affiche la liste de produits associés en fonction de la valeur d'un champs de recherche renseignée par l'utilisateur.
    Bien que les références soient renseignées dans la BDD qu'avec des lettre en majuscule, si l'utilisateur entre des minuscules, la recherche fonctionne quand même.
    Bien que les références soient renseignées dans la BDD sans contenir d'espaces, si l'utilisateur entre des espaces, ceux-ci sont ignorés dans la recherche.
    Le caractère "µ" est remplacé dans la recherche par le caractère "U".

    Par exemple, si on a cette BDD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    AAA-123US
    AAA-124US
    BBB-124US
    BBB-124AS
    Si l'utilisateur entre dans le champs de recherche "124 µS", ça affiche :
    Voici que le code qui génère le regex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function getProductRegex(reference){
    	//console.log(reference);
    	let newReference = reference.replace('µ', 'U') // remplacement µ par U
    								.toUpperCase() // conversion en majuscule
    				                .split(' ').join(''); // suppression des espaces
    	//console.log(newReference);
     
    	let re = $.ui.autocomplete.escapeRegex(newReference);
     
    	let matcher;
    	matcher = new RegExp(re);	
     
    	return matcher;
    }
    La BDD (Base De Données) est stockée sous forme de variable dans mon script javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var bdd = ["AAA-123US", "AAA-124US", "BBB-124US", "BBB-124AS"];

    Maintenant, j'aimerai améliorer le système pour que la recherche fonctionne par mots clefs séparés par des espace.
    Par exemple si l'utilisateur entre dans le champs de recherche "µS 124 BBB", que ça affiche :
    ... que le regex recherche toutes les chaines de caractères qui contiennent TOUS les mots clef entrés (peu importe l'ordre).

    Comment faire cela ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Tu parles de BDD
    Les données sont dans un table MySQL ?

    Il serait peut être plus intéressant de faire la recherche en utilisant le fulltext ?
    https://www.w3resource.com/mysql/mys...-functions.php
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Non les données sont enregistrées dans une variable locale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var bdd = ["AAA-123US", "AAA-124US", "BBB-124US", "BBB-124AS"];
    ... je vais rajouter cette infos dans mon premier message.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Ha ok

    Donc si on rentre des suites de caractères séparés par des espaces il faudra rechercher selon les "mots" ainsi rentrés ?

    Faut il que tous les mots soient présent ou la recherche est elle "ou" ?

    Il suffira de récupérer la chaine de recherche, la splitter et constituer une nouvelle regex avec des pipes ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Malheureusement, c'est un "et" que je veux faire. Je pourrais faire autant de passe regex qu'il y a de mots clefs mais on ne peut pas gérer ça directement via un regex ?
    ... et puis faire plusieurs passes, ça ne marche bien pour la gestion des recouvrements (ex: recherche de "AB BC" va matcher la chaine "ABC" alors que ça ne devrait pas).

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    un et OK mais dans l'ordre ?

    du coup tu pourrais faire une reg par mot et ainsi faire un score de match
    ceux qui matche tous les mots ... =100%
    ceux qui matche tous les mots -1 = nbr mots-1 / nbre mots *100 %
    etc ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Désolé mais je n'ai pas compris.

    Après j'ai peut-être un début de solution.

    Si l'utilisateur entre " US 124 BBB"

    Je transforme la requête sous cette forme de regex :
    "(US|124|BBB).*(US|124|BBB).*(US|124|BBB)"

    ça fonctionne bien avec la liste suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    AAA-123US
    AAA-124US
    BBB-124US
    BBBUS-124
    BBB-124AS
    ça me sélectionne bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    AAA-123US
    BBB-124US
    BBBUS-124

    Par contre, ça sélectionne aussi la chaine "BBB-BBBUS"... il faudrait arriver à exclure les chaines déjà trouvées.

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    La reg devrait plutot ressembler à
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Ce n'est pas un OU que je veux faire mais un ET (mais sans recouvrement des chaines trouvée).

    ce regex semble fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "(BB.*124.*US)|(BB.*US.*124)|(124.*US.*BB)|(124.*BB.*US)|(US.*BB.*124)|(US.*124.*BB)"
    ... mais le problème est que ça taille augmente de manière exponentielle en fonction du nombre de mots clefs à rechercher : il y a peut-être une autre manière de l'écrire ?



    PS :
    c'est la même chose que ça ?

  10. #10
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Salut,

    Je vois 2 problèmes dans ce que tu essaies de faire:

    1) Comment veux-tu obliger le client à taper des mots clés séparés par des espaces? (pas très ergonomique et risque de saisie non conforme)
    2) Pourquoi utiliser des regexp alors que le client saisira forcément des caractères standards en clair?

  11. #11
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Principe à tester:

    Code html : 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
    20
    21
    22
    23
    24
    25
    <div id="search">
    <input type="text" size="4" />
    <input type="text" size="4" />
    <input type="text" size="4" />
    </div>
    <div>
    <input id="go" type="button" value="go" />
    </div>
    <div id="result"></div>
    <script>
     
    var bdd = ["AAA-123US", "AAA-124US", "BBB-124US", "BBB-124AS"];
     
    document.querySelector("#go").addEventListener("click",()=>{
            let req=Array.from(document.querySelector("#search").getElementsByTagName("input"));
            for(i in bdd){
                    let win=0,nbr=req.length;
                    req.forEach(v=>{
                            if(v.value.replace(/\s/,"")==""){nbr--}
                            else if(bdd[i].search(v.value.toUpperCase())!=-1){win++}
                    });
                    if(win==nbr){console.log(bdd[i])}
            }
    })
    </script>

  12. #12
    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
    J'adopterais plutôt une méthode consistant à faire en amont un registre mettant en rapport les éléments des références avec les index du tableau de références. Voilà ce que ça donne:
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    const refs = ["AAA-123US", "AAA-124US", "BBB-124US", "BBBUS-124", "BBB-124AS"];
     
    const refs_elts = new Map([
        ["AAA", new Set([0, 1])],
        ["BBB", new Set([2, 3, 4])],
        ["123", new Set([0])],
        ["124", new Set([1, 2, 3, 4])],
        ["US", new Set([0, 1, 2, 3])],
        ["AS", new Set([4])]
    ]);
     
    let usr_input = "US 124 BBB";
    let usr_elts = usr_input.split(/ /);
     
    let indexes = new Set();
    let current_elt = usr_elts.pop();
     
    if (refs_elts.has(current_elt)) {
        let elt_indexes = refs_elts.get(current_elt)
        indexes = new Set(elt_indexes);
     
        while (usr_elts.length) {
            current_elt = usr_elts.pop();
     
            if (refs_elts.has(current_elt)) {
                elt_indexes = refs_elts.get(current_elt);
                indexes = new Set([...indexes].filter((index) => elt_indexes.has(index)));
            }
        }
    }
     
    for (const index of indexes) {
        console.log(refs[index]);
    }
    De cette manière, on obtient les "candidats potentiels" en faisant l'intersection entre les jeux (sets) d'index.

    Bien entendu, ce registre devra être généré dynamiquement.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  13. #13
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    En amont, en amont... Oui mais imagine rien qu'un millier de références à entrer!
    Et puis n'oublions pas que la saisie peut être elliptique par rapport aux références. On peut saisir "a" et espérer un résultat comprenant "AAA".

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Salut,

    Citation Envoyé par javatwister Voir le message
    1) Comment veux-tu obliger le client à taper des mots clés séparés par des espaces? (pas très ergonomique et risque de saisie non conforme)
    Je m'inspire du système de recherche du logiciel Everything : je n'ai jamais eu besoin de lire la documentation pour comprendre comment il fonctionne, je trouve l'interface plutot intuitive. Tu entres des mots clefs et il t'affiche tous les fichiers qui contiennent ces mots... simple et efficace, je trouve.


    Citation Envoyé par javatwister Voir le message
    2) Pourquoi utiliser des regexp alors que le client saisira forcément des caractères standards en clair?
    L'utilisateur n'entrera pas de regex : je veux juste transformer les mots clefs en regex pour faire la recherche... mais peut-etre que ce n'est pas la bonne solution.

  15. #15
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Tu peux tester le bout de code ds une page et voir si ça marche?

  16. #16
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    A priori avec cette méthode ça fonctionne (testé avec le moteur de recherche en mode Regex du logiciel Notepad++) : https://stackoverflow.com/questions/...s-in-any-order
    ... par contre, je n'ai pas bien comprise comment fonctionne ce regex.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^(?=.*US)(?=.*124)(?=.*BBB).*$
    Match bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    BBB-124US
    BBBUS-124
    BBBUSUS-124
    Et ne match pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    AAA-124US
    AAA-123US
    AAA-123US
    BBB-124AS

  17. #17
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Je ne comprends toujours pas ce que tu fais...

    Je me répète mais tu n'as pas besoin de regexp: l'utilisateur tape 2 ou 3 "mots" clés et tu affiches les données qui contiennent ces mots clés...
    Donc, à peu près rien à coder;

  18. #18
    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
    Citation Envoyé par javatwister Voir le message
    En amont, en amont... Oui mais imagine rien qu'un millier de références à entrer!
    Et puis n'oublions pas que la saisie peut être elliptique par rapport aux références. On peut saisir "a" et espérer un résultat comprenant "AAA".
    Un millier, c'est une broutille!

    La génération de l'objet map ne prend que quelques dixièmes de seconde (et encore) et est faite une fois pour toutes: sous nodejs, j'atteint la seconde (génération aléatoire du tableau de références et test avec une entrée utilisateur compris) qu'à partir de 300 000 références!

    Quant au temps de recherche lui-même, il est totalement négligeable, même avec des entrées elliptiques.

    Il faut bien voir que le nombre de clefs de la map est majorée et ne dépassera pas 19252 entrées quelque soit le nombre de références (19252 = 26^3 + 10^3 + 26^2) et quelles sont associées à des Sets de nombres. Donc l'occupation en mémoire ne coutera à quelque chose près pas plus chère que le tableau d'origine. Pour illustrer, passé 10.000 références, le nombre d'entrées de la map devient inférieur à celui du tableau.

    Par contre, le problème de chevauchement des éléments de l'entrée utilisateur reste entier, mais sera plus rapide à régler une fois ce premier filtrage effectué (par exemple pour 1 million de références, j'obtiens ~150 résultats contenant AI et IA).
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  19. #19
    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
    Citation Envoyé par boboss123 Voir le message
    A priori avec cette méthode ça fonctionne (testé avec le moteur de recherche en mode Regex du logiciel Notepad++) : https://stackoverflow.com/questions/...s-in-any-order
    ... par contre, je n'ai pas bien comprise comment fonctionne ce regex.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^(?=.*US)(?=.*124)(?=.*BBB).*$
    C'est simple cette pattern teste en partant du début de la chaîne (^) pour chaque test avant (?=...) (lookahead) si US, 124 et BBB sont bien présent dans la chaîne. (À noter que .*$ ne sert à rien, on se doute bien que la chaîne va finir un jour).
    Par contre ce qu'elle ne fait pas c'est de résoudre le problème de chevauchement: ^(?=.*AB)(?=.*BA) trouvera ABC-123BA mais aussi ABA-123US.


    Accessoirement, il serait utile de savoir de quoi on parle: quel est le format précis des références? Est-ce qu'il y en a plusieurs qui coexistent? Quelle est la taille de ton tableau de références? Pourquoi sont-elles en dur dans ton javascript, d'où viennent-elles?
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  20. #20
    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
    En fait je me suis compliqué la vie pour rien, j'étais tellement persuadé que le parcours du tableau allait être lent que j'ai cherché une solution de rechange qui en plus résoudrait le problème de chevauchement, mais en fait il est rapide même avec beaucoup d'éléments et le problème de chevauchement n'est pas résolu dans le cas de saisies élliptiques avec ma méthode. Je vais chercher autre chose.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [RegExp] Aide pour la création d'un regex
    Par beegees dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/08/2011, 14h11
  2. Erreur 400 : création de barres d'avancement
    Par polo31 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/07/2011, 10h21
  3. Création d'une Regex (TextBox Float)
    Par snakzbenjy dans le forum Silverlight
    Réponses: 2
    Dernier message: 13/04/2011, 20h07
  4. Création du site web Avancé
    Par wkd dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 13/07/2007, 14h30
  5. [RegEx] Probleme de création d'un regex
    Par mathis49 dans le forum Langage
    Réponses: 6
    Dernier message: 15/06/2007, 12h08

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