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 :

Conversion multiple et conversion de parentheses [RegExp]


Sujet :

JavaScript

  1. #1
    Membre chevronn�
    Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2008
    Messages
    504
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 504
    Par d�faut Conversion multiple et conversion de parentheses
    Bonjour,

    Je cherche � faire un petit script simple qui va convertir dans une chaine les symboles & � " ' ( - � _ � � de notre clavier fran�ais en valeurs num�riques, � savoir 1 2 3 4 5 6 7 8 9 0.

    J'utilise donc les RegExp, mais 2 choses me posent probl�me :

    - d'abord, comment faire la conversion de l'ensemble des caract�res en 1 seule fois ? en l'�tat, j'ai besoin de 10 lignes du type :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    val = val.replace(new RegExp("&" ,"g"), '1');
    ce qui vous en conviendrez n'est pas �l�gant du tout.

    - Ensuite, j'ai un probl�me pour le 5 qui correspond au symbole "("... J'�crit donc :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    val = val.replace(new RegExp("\(" ,"g"), '5');
    et malgr� la protection via l'antislash, j'ai invariablement la m�me erreur : unterminated parenthetical.

    EDIT : J'ai trouv� la solution, il faut faire une double protection : un protection pour le symbole \ et une protection pour le symbole (, ce qui donnr la ligne suivante :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    val = val.replace(new RegExp("\\\(" ,"g"), '5');
    Pour le reste, j'ai pas encore de solution
    Enfin, il me semble que le symbole - devrait �galement �tre prot�g�... Pourtant, que j'�crive :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    val = val.replace(new RegExp("\-" ,"g"), '6');
    ou

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    val = val.replace(new RegExp("-" ,"g"), '6');
    Le r�sultat est le m�me : �a marche... Dans un soucis de compr�hension, quelqu'un aurait-il l'amabilit� de m'expliquer pourquoi ?

    En vous remerciant par avance.

  2. #2
    Membre exp�riment�
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Par d�faut
    Bonjour,

    par rapport � des substitutions multiples, en g�n�ral j'utilise un objet que j'it�re pour faire les substitutions :

    Ex. une fonction qui "nettoie" les accents :
    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
     
    function cleanAccent(str)
    {
    	var retour = str;
    	var exp = {"a":"[\340\341\342\343\344\345\346]",
                       "e":"[\350\351\352\353]",
                       "i":"[\354\355\356\357]",
                       "o":"[\362\363\364\365\366\367\368\369\370]",
                       "u":"[\371\372\373\374]",
                       "y":"[\375\377]"};
    	for (prop in exp)
    	{
    		var regExp = new RegExp(exp[prop],"gi");
    		retour = retour.replace(regExp,prop);
    	}
    	return retour;
    }
    A adapter pour ta substitution avec les bonnes correspondances...
    Peut-�tre existe t-il une "meilleure" solution qui substituerais tout en une fois ?

    Par rapport � ton probl�me de "tiret" -, je n'ai pas d'explication, si ce n'est que l'expression r�guli�re doit accepter le tiret �chapp� ou non ?

    A+

  3. #3
    Membre chevronn�
    Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2008
    Messages
    504
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 504
    Par d�faut
    Je te remercie pour ta r�ponse.

    Pour le -, oui oui, �a marche, et c'est bien ce qui m'�tonne vu que c'est cens� �tre un caract�re prot�g� (et ma question n'�tait que par pure curiosit�).

    Pour la substitution multiple, tu confirmes donc que le javascript ne supporte pas nativement la substitution multiple comme le ferait par exemple PHP ? L'id�e �tait surtout de limiter le nombre d'appel aux fonctions regexp plus que la r�duction litt�rale du code.

    En attendant, je marque R�solu, mais si y'a une solution via un seul appel regexp/replace, je suis toujours preneur.

  4. #4
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut
    Citation Envoy� par comode Voir le message
    Enfin, il me semble que le symbole - devrait �galement �tre prot�g�... Pourtant, que j'�crive :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    val = val.replace(new RegExp("\-" ,"g"), '6');
    ou

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    val = val.replace(new RegExp("-" ,"g"), '6');
    Le r�sultat est le m�me : �a marche... Dans un soucis de compr�hension, quelqu'un aurait-il l'amabilit� de m'expliquer pourquoi ?
    Le caract�re "\", rencontr� dans une regexp, permet de signifier au parseur que le prochain caract�re doit �tre �chapp�, c'est-�-dire "pris en temps que caract�re et non comme m�ta-caract�re de la syntaxe propre aux regexp" (par exemple une parenth�se, un ast�risque, un "+", etc.). Si le caract�re (comme ici le trait d'union) n'a aucune signification particuli�re* dans le contexte d'un regexp, il n'y a "rien � �chapper", donc les expressions r�guli�res et sont �quivalentes** ^^

    * Enfin, le trait d'union a une signification particuli�re quand m�me, SI il est pr�sent entre deux crochets... ^^

    ** � une exception pr�s : la premi�re syntaxe ressemble quand m�me salement � un TIE fighter

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

Discussions similaires

  1. [XL-2010] Conversion excel to xml probl�me balise multiple
    Par arkhang dans le forum Excel
    R�ponses: 4
    Dernier message: 01/04/2015, 10h48
  2. conversion un PDF vers TIFF ou multiple PNG
    Par charouel dans le forum VB.NET
    R�ponses: 1
    Dernier message: 30/07/2009, 18h56
  3. Multiples Conversions Images
    Par lerorodu51 dans le forum NetBeans
    R�ponses: 2
    Dernier message: 28/05/2009, 14h00
  4. R�ponses: 4
    Dernier message: 14/04/2009, 11h25
  5. Conversion et re-conversion des caract�res reserv� � MySQL
    Par Didier100 dans le forum Bases de donn�es
    R�ponses: 4
    Dernier message: 30/06/2004, 14h23

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