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 :

Variable JS dans regex


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Par d�faut Variable JS dans regex
    Bonjour � tous,

    Ce dimanche pluvieux je suis dans la panade, je cherche � faire une ReGex avec une variable dedans, j'ai donc �crit :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    var longMiniMot = parseInt(editabiliteTA.split('-')[0]);	//	editabiliteTA = "4-3"
    var  regex = new RegExp("[0-9a-zA-ZéèôùûàçÉÈÔÙÛÀÇ]{"+longMiniMot+", 36}","g");
    if($(this).html().toString().split(regex).length > editabiliteTA.split("-")[1]) {
    Do something…
    }
    Ceci ne fonctionne pas.

    Mais cette Regex fonctionne parfaitement quand je fais :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var  regex = new RegExp("[0-9a-zA-ZéèôùûàçÉÈÔÙÛÀÇ]{4, 36}","g");
    Mais l'insertion de la var JS bloque tout, Pourquoi ??

    D'avance merci pour vos remarques �clair�es !!

    Cdlt

  2. #2
    Membre chevronn�
    Profil pro
    � la bougie alors
    Inscrit en
    Mai 2006
    Messages
    224
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : � la bougie alors

    Informations forums :
    Inscription : Mai 2006
    Messages : 224
    Par d�faut
    C'est pas l'insertion de la variable JS qui pose probl�me, c'est l'espace entre la virgule et 36 dans l'expression.
    Remplacer
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var  regex = new RegExp("[0-9a-zA-ZéèôùûàçÉÈÔÙÛÀÇ]{"+longMiniMot+", 36}","g");
    par
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var  regex = new RegExp("[0-9a-zA-ZéèôùûàçÉÈÔÙÛÀÇ]{"+longMiniMot+",36}","g");
    (cf la sp�cification ES grammaire des regex)

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Par d�faut
    Citation Envoy� par lysandro Voir le message
    C'est pas l'insertion de la variable JS qui pose probl�me, c'est l'espace entre la virgule et 36 dans l'expression.
    Remplacer
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var  regex = new RegExp("[0-9a-zA-ZéèôùûàçÉÈÔÙÛÀÇ]{"+longMiniMot+", 36}","g");
    par
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var  regex = new RegExp("[0-9a-zA-ZéèôùûàçÉÈÔÙÛÀÇ]{"+longMiniMot+",36}","g");
    (cf la sp�cification ES grammaire des regex)
    C'est un vrai bonheur que de s'adresser � un vrai pro. Merci tout re-fonctionne correctement.

    Bonne soir�e.

  4. #4
    Expert confirm� Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    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 986
    Par d�faut
    Je pense que lysandro a mis le doigt sur le probl�me, cette espace n'a rien � faire ici.

    Une petite remarque concernant ta classe de caract�res. C'est assez fastidieux de trouver toutes les lettres non-ASCII utilis�es en fran�ais (en particulier, � cause des noms propres qui peuvent contenir pas mal de bizarreries comme, par exemple, des ÿ). Tout �a pour dire qu'il en manque pas mal dans ta classe, et que pour t'�viter d'�crire une classe de quinze kilom�tres tu peux utiliser le modificateur i (qui fonctionne �galement pour les caract�res accentu�s), si, bien s�r, la casse n'est pas importante pour la partie que tu ins�res.

    Citation Envoy� par bronon Voir le message
    Ce dimanche pluvieux je suis dans la panade
    Petite pr�cision: aujourd'hui nous sommes d�j� lundi.

  5. #5
    Membre �clair�
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Par d�faut
    Citation Envoy� par CosmoKnacki Voir le message
    Je pense que lysandro a mis le doigt sur le probl�me, cette espace n'a rien � faire ici.

    Une petite remarque concernant ta classe de caract�res. C'est assez fastidieux de trouver toutes les lettres non-ASCII utilis�es en fran�ais (en particulier, � cause des noms propres qui peuvent contenir pas mal de bizarreries comme, par exemple, des ÿ). Tout �a pour dire qu'il en manque pas mal dans ta classe, et que pour t'�viter d'�crire une classe de quinze kilom�tres tu peux utiliser le modificateur i (qui fonctionne �galement pour les caract�res accentu�s), si, bien s�r, la casse n'est pas importante pour la partie que tu ins�res.



    Petite pr�cision: aujourd'hui nous sommes d�j� lundi.
    Certains jours c'est plus compliqu� que d'autres !!!

    Merci pour ta r�ponse, effectivement j'ai fait court pour la classe de caract�res, je viens de regarder rapidement sur Google, je n'ai rien vu de pertinent concernant ce modificateur �i� qui est suppos� faire quoi ?

    Bonne soir�e.

    [M�J] Oups je viens de comprendre ta remarque effectivement dans ce cas bien pr�cis la cassent n'a aucune importance, maintenant je me limite au caract�res ASCIII stricto sensus. Existe-t-il une classe pour tous ces caract�res non-ascii ou m�me les lettres grecques (∆,∂,�,∫,∑, �) souvent utilis�es dans les textes techniques ce qui peut arriver dans ce cas pr�cis ?
    Bonne journ�e

  6. #6
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Tu as aussi un l�ger probl�me de logique dans ton code...

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var longMiniMot = parseInt(editabiliteTA.split('-')[0]);
    A quoi te sert de transformer en entier (parseInt()) pour l'utiliser en tant que chaine ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $(this).html().toString()
    La m�thode .html() renvoie une chaine, donc l'utilit� de toString() derri�re est pas vraiment �vidente.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    editabiliteTA.split("-")[1]
    L� c'est le contraire de la premi�re remarque... Maintenant, tu veux utiliser l'entier pour la comparaison mais tu le laisses en chaine.
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  7. #7
    Membre �clair�
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Par d�faut
    Effectivement bovino mais tout ceci viens de mon pataugeage initial.
    J'ai remis de l'ordre dans la syntaxe.
    Merci pour tes remarques de bon sens.
    Bonne journ�e

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [PowerShell] Inclure une variable Powershell dans une regex
    Par arnaudperfect dans le forum Scripts/Batch
    R�ponses: 5
    Dernier message: 15/04/2015, 12h33
  2. R�ponses: 5
    Dernier message: 31/03/2014, 18h05
  3. variables dans regex
    Par TabrisLeFol dans le forum Langage
    R�ponses: 2
    Dernier message: 31/03/2007, 20h32
  4. Comment renseigner la variable autocommit dans my.ini
    Par Charroin dans le forum SQL Proc�dural
    R�ponses: 5
    Dernier message: 18/09/2003, 15h23
  5. Variable "globale" (dans plusieurs templa
    Par mattmat dans le forum XSL/XSLT/XPATH
    R�ponses: 3
    Dernier message: 17/06/2003, 19h22

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