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�guli�re cr��e dynamiquement


Sujet :

JavaScript

  1. #1
    Membre �clair�
    Avatar de airod
    Homme Profil pro
    G�rant Associ�, DMP Sant� et Directeur technique
    Inscrit en
    Ao�t 2004
    Messages
    767
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : G�rant Associ�, DMP Sant� et Directeur technique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 767
    Par d�faut expression r�guli�re cr��e dynamiquement
    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
    <script>var s='Placenta antérieur BI. - Distance col :   le 01/01/2010'
    		var s1='Placenta antérieur BI.'
    		var s2='Placenta antérieur BI. - Distance col : 12  le 01/01/2010'
    		var s3='Placenta antérieur BI. - Distance col : 12  le'
    		var rexExp='^Placenta antérieur BI\.$|^Placenta antérieur BI\. - Distance col : (.*)  le [0-3]{1}[0-9]{1}/[0-1]{1}[0-9]{1}/[0-9]{4}$'
     
    		var ref=new RegExp(rexExp,'g');
    		if (ref.test(s))
    		{
    			alert('s');
    		}
    		if (ref.test(s1))
    		{
    			alert('s1');
    		}
    		if (ref.test(s2))
    		{
    			alert('s2');
    		}
    		if (ref.test(s3))
    		{
    			alert('s3');
    		}
    </script>
    bonjour, ci dessus un petit script javascript qui doit v�rifier que les expressions s, s1, s2 et s3 r�pondent a l'expression regExp.

    L� ou j'ai un probl�me, c'est que je n'arrive pas a trouver la bonne expression.
    Quoique je tente, 2 des 4 string r�pondent a mon expression.

    la donn�e importante du probl�me est que cette expression est auto g�n�r�e dynamiquement en fonction d'un phrase de d�part.
    du type:

    je ne suis [text:] le [date:] � [heure:].

    >> devrait renvoyer une expression permettant de valider:

    s0 >> je suis.
    s1 >> je suis. dispo le �
    s2 >>je suis. dispo le 12/02/2008 �
    s3 >>je suis. dispo le 12/02/2008 � 12h25
    s4 >>je suis. le 12/02/2008 � 12h25
    s5 >>je suis. le � 12h25
    s6 >>je suis. dispo le 12/02/2008 � 12h25
    s...>> etc...

    le modele est simple:
    si aucun �l�ment entre crochet n'est rempli, la chaine est egale au d�but jusqu'au premier point.
    sinon elle est egale a tous les texte statique + les valeurs des �lement entre crochet, si leur valeur est diff�rent de null.

    Si une bonne ame peut me conseiller ca serait tr�s cool.
    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 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 659
    Billets dans le blog
    1
    Par d�faut
    dans l'id�e �a devrait ressembler � �a
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var rexExp=/^Placenta antérieur BI.( - Distance col : \d*  le( \d{2}/\d{2}/\d{4})?)?$/;
    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 �clair�
    Avatar de airod
    Homme Profil pro
    G�rant Associ�, DMP Sant� et Directeur technique
    Inscrit en
    Ao�t 2004
    Messages
    767
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : G�rant Associ�, DMP Sant� et Directeur technique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 767
    Par d�faut
    Merci pour cette suggestion mais cette RE est vrai que pour s1.

  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 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 659
    Billets dans le blog
    1
    Par d�faut
    1- il faut echapper les / => \/

    2- il faut r�initialiser le pointeur de la regExp apr�s chaque test

    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
    <script>var s='Placenta antérieur BI. - Distance col :   le 01/01/2010'
    		var s1='Placenta antérieur BI.'
    		var s2='Placenta antérieur BI. - Distance col : 12  le 01/01/2010'
    		var s3='Placenta antérieur BI. - Distance col : 12  le'
    		var rexExp='^Placenta antérieur BI\.$|^Placenta antérieur BI\. - Distance col : (.*)  le [0-3]{1}[0-9]{1}/[0-1]{1}[0-9]{1}/[0-9]{4}$'
     
    		var ref=/^Placenta antérieur BI\.( - Distance col : \d*  le( \d{2}\/\d{2}\/\d{4})?)?$/;
    		if (ref.test(s))
    		{
    			alert('s');
    		}
    		ref.test('')
    		if (ref.test(s1))
    		{
    			alert('s1');
    		}
    		ref.test('')
    		if (ref.test(s2))
    		{
    			alert('s2');
    		}
    		ref.test('')
    		if (ref.test(s3))
    		{
    			alert('s3');
    		}
    </script>
    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 �clair�
    Avatar de airod
    Homme Profil pro
    G�rant Associ�, DMP Sant� et Directeur technique
    Inscrit en
    Ao�t 2004
    Messages
    767
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : G�rant Associ�, DMP Sant� et Directeur technique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 767
    Par d�faut encore une question
    merci, ca focntionne bien, j'ai cependant encore une question.

    dans mon exemple, la balise [text:] vaut 12, mais dans d'autres cas celle ci pourrait �tre une chaine de carract�res alpha num�rique.

    dans ce cas, pour l'exemple suivant:
    var s3='Placenta ant�rieur BI. - Distance col : 12 mm le'

    [text:] vaut :12 mm

    et l�, l'expression n'est plus bonne.
    en fait j'ai 3 type de champs. un champs date, 1 heure et un text quelconque.
    comment remplacer le \d* pour que l'expression �value comme bonne cet exemple suppl�mentaire.

    Merci encore pour l'aide pr�cieuse.

  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 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 659
    Billets dans le blog
    1
    Par d�faut
    peux tu �num�rer les format de ce text ?

    12
    12mm
    12 mm
    0.012m ???

    on peut ratisser large :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var ref=/^Placenta antérieur BI\.( - Distance col : [0-9cm ]*  le( \d{2}\/\d{2}\/\d{4})?)?$/;
    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 �clair�
    Avatar de airod
    Homme Profil pro
    G�rant Associ�, DMP Sant� et Directeur technique
    Inscrit en
    Ao�t 2004
    Messages
    767
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : G�rant Associ�, DMP Sant� et Directeur technique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 767
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var ref=/^Placenta antérieur BI\.( (- Distance col : )([\w*\s*])*(  le)( [0-3]{1}[0-9]{1}\/[0-1]{1}[0-9]{1}\/[0-9]{4})?)?$/;
    J'ai r�solu mon probl�me.
    pour faire court, il faut que je puisse saisir n'importe quoi dans un champs input, taggu� [text:].

    merci encore

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

Discussions similaires

  1. Expression r�guli�res : conditions dynamique
    Par Katachana dans le forum Collection et Stream
    R�ponses: 2
    Dernier message: 23/05/2011, 13h17
  2. R�ponses: 2
    Dernier message: 07/08/2008, 21h51
  3. [expression r�guli�re] mon cerveau fait des noeuds..
    Par nawac dans le forum Algorithmes et structures de donn�es
    R�ponses: 7
    Dernier message: 27/05/2003, 10h06
  4. Expressions r�guli�res
    Par Tooms dans le forum Langage
    R�ponses: 4
    Dernier message: 06/12/2002, 18h42
  5. R�ponses: 5
    Dernier message: 11/06/2002, 15h21

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