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 :

remplacer espaces, tirets, virgules par + [RegExp]


Sujet :

JavaScript

  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut remplacer espaces, tirets, virgules par +
    Bonjour,
    J'ai eut beau essayer de créer ma RegExp depuis 2h, ca fonctionne vraiment pas donc je me décide à poster apres avoir écumé le web..
    Voici le topo:
    Je recuperer depuis ma Bdd deux chaines:
    - une chaine du genre "developpeur java web"
    - et une autre "java,web,developpeur"

    Afin de passer tout ce petit monde dans mon url, je souhaite transformer ces chaines via javascript ( string.replace() ) , et donc enlever mes espaces (1ere chaine), et espace/virgules/tirets dans ma seconde chaine puis mettre "+" à la place.

    Pour le moment j'ai essayé un RegExpr du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var reg = new RegExp( "/ \/-\/,","g");
    string.replace(reg,"+");
    Mais rien ne fonctionne, pas étonnant j'imagine, mais j'avoue que meme apres avoir lu des tutos sur ces expressions , je comprend vraiment pas comment les former, enfin surtout en ce qui concerne les caractères spéciaux :/


    Des spécialistes dans le coin qui pourraient m'aider? :F

    merci.
    L'intelligence c'est comme la confiture, moins tu en as , plus tu l'étales...

  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 640
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    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 actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut
    merci tu me sauves, jvois deja mieux comment on forme ca en plus :p
    L'intelligence c'est comme la confiture, moins tu en as , plus tu l'étales...

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Il me semble utile de préciser:



    Les caractères spéciaux sont neutralisés par un antislash \, et non par /


    Un blanc n’est pas un caractère spécial.


    Un tiret n’est un caractère spécial qu’entre deux crochets. Pour éviter qu’il joue comme caractère spécial entre deux crochets, il suffit de le mettre à la fin ou du début de l’entre-crochet.


    Une virgule n’est pas un caractère spécial, que je sache.



    Enfin, il faut savoir que les caractères spéciaux perdent leur spécialité quand il sont entre crochets.



    NB: je ne connais pas parfaitement les regex en Javascript.

  5. #5
    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 640
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    oui on pourrait d'ailleurs aussi faire :

    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 !

  6. #6
    Membre éclairé Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 723
    Points : 745
    Points
    745
    Par défaut
    Bonjour, je me permet de rebondir sur ce post car ce sont les crochets que je souhaite remplacer :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function replace_rc_br(unsafe){
    		  return unsafe
    		  .replace(/\[g]/g, '<strong>')
    		  .replace(/[/g]/g, '</strong>');
    	}
    ça me renvoie ça : [g]blabla[g] au lieu de <strong>blabla</strong>

    Pourriez-vous svp me mettre sur la voie ?

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 048
    Points : 44 562
    Points
    44 562
    Par défaut
    Bonjour,
    je penses que tu voulais parler de [g]blabla[g].

    Dans .replace(/[/g]/g, '</strong>');, il te faut échapper le crochet et le slash.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert("[g]blabla[/g]".replace(/\[g]/g, '<strong>').replace(/\[\/g]/g, '</strong>'));
    j'ai cela dans mes "cartons"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert("[g]blabla[/g]".replace(/\[g]([^\]]*)\[\/g]/gim,'<strong>$1<\/strong>'));

  8. #8
    Membre éclairé Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 723
    Points : 745
    Points
    745
    Par défaut
    Merci beaucoup NoSmoking je te dois une fière chandelle

  9. #9
    Membre éclairé Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 723
    Points : 745
    Points
    745
    Par défaut
    Re, bon ça marche mais de façon irrégulière parfois les balises bbcode

    [g][/g] ou autres ne sont pas remplacées, ça me fait ça sur IE et Firefox. A

    votre avis à quoi est dû ce bug ?

  10. #10
    Membre éclairé Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 723
    Points : 745
    Points
    745
    Par défaut
    Vous me conseillez plutot de le faire en ajax ?

  11. #11
    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 640
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Re, bon ça marche mais de façon irrégulière parfois les balises bbcode
    avec quel code ?
    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 !

  12. #12
    Membre éclairé Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 723
    Points : 745
    Points
    745
    Par défaut
    Bonjour, le voici :

    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
    function replace_rc_br(unsafe){
    		  return unsafe
    		  .replace(/&/g, "&amp;")
    		  .replace(/</g, "&lt;")
    		  .replace(/>/g, "&gt;")
    		  .replace(/"/g, "&quot;")
    		  .replace(/'/g, "'")
    		  .replace(/\r\n/g,"</br>")
    		  .replace(/\n/g,"</br>")
    		  .replace(/:D:/g, '<img src="./images/smileys/happy.png" title="heureux" alt="heureux" />')
    		  .replace(/:lol:/g, '<img src="./images/smileys/lol.png" title="lol" alt="lol" />')
    		  .replace(/:sad:/g, '<img src="./images/smileys/sad.png" title="triste" alt="triste" />')
    		  .replace(/:cool:/g, '<img src="./images/smileys/cool.png" title="cool" alt="cool" />')
    		  .replace(/:inlove:/g, '<img src="./images/smileys/inlove.png" title="in love" alt="in love" />')
    		  .replace(/:angry:/g, '<img src="./images/smileys/angry.png" title="angry" alt="angry" />')
    		  .replace(/\[g]([^\]]*)\[\/g]/gim,'<strong>$1<\/strong>')
    		  .replace(/\[i]([^\]]*)\[\/i]/gim,'<em>$1<\/em>')   
    		  .replace(/\[s]([^\]]*)\[\/s]/gim,'<u>$1<\/u>');
    	}

  13. #13
    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 640
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    heu


    et pareil pour les autres
    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 !

  14. #14
    Membre éclairé Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 723
    Points : 745
    Points
    745
    Par défaut
    Ca n'a pas réglé le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [g_][i_][s_]blabla[/s_][/i_][/g_]
    => [g_][i_]blabla[/i_][/g_]

    alors que,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [s_][i_][g_]blabla[/g_][/i_][/s_]
    => blabla

    Etrange (j'ai rajouté des underscore ici pour éviter un certain affichage)

  15. #15
    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 640
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    ha pour les balises imbriquées c'est logique la reg capte le [ ou le ] de la balise bbcode suivante ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /\[g\]((?:[^](?!\[g\]))*?)\[\/g\]/
    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 !

  16. #16
    Membre éclairé Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 723
    Points : 745
    Points
    745
    Par défaut
    Super ça marche merci beaucoup

  17. #17
    Membre éclairé Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 723
    Points : 745
    Points
    745
    Par défaut
    Salut SpaceFrog,

    Pour les balises phpbb qu'on vient de voir ça va, en revanche pour le [quote_] blablabla[/quote_], il y a un soucis d'affichage si untel cite untel qui avait cité untel. J'aimerais pouvoir emboiter des quotes les uns dans les autres mais malheureusement ça bug, voici mon code :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .replace(/\[quote\]((?:[^](?!\[quote\]))*?)\[\/quote\]/gim,'<div class="quote"><p><strong>Untel a écrit : <\/strong><\/p>$1<\/div>')

    Aurais-tu une idée stp ?

  18. #18
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 048
    Points : 44 562
    Points
    44 562
    Par défaut
    en revanche pour le [quote_] blablabla[/quote_], il y a un soucis d'affichage si untel cite untel qui avait cité untel.
    pourquoi dans ce cas ne pas faire au plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert('[quote_][quote_] blablabla[/quote_][/quote_]'.replace(/\[quote_]/g,'<div class="quote">').replace(/\[\/quote_]/g,'<\/div>'));

  19. #19
    Membre éclairé Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 723
    Points : 745
    Points
    745
    Par défaut
    Bonjour, est-ce que ça marche si untel cite untel qui avait cité untel qui avait cité untel etc... ?

    et est-ce que ton script marche si untel cite untel qui avait cité untel et puis plus loin dans le post il cite untel qui avait cité untel ?

  20. #20
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 048
    Points : 44 562
    Points
    44 562
    Par défaut
    Citation Envoyé par guitz Voir le message
    Bonjour, est-ce que ça marche si untel cite untel qui avait cité untel qui avait cité untel etc... ?

    et est-ce que ton script marche si untel cite untel qui avait cité untel et puis plus loin dans le post il cite untel qui avait cité untel ?
    as tu testé?

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

Discussions similaires

  1. Remplacer espace par virgule
    Par matt41fr dans le forum MATLAB
    Réponses: 2
    Dernier message: 20/03/2015, 17h21
  2. [Notepad++] Remplacer des chiffres à virgules par des points
    Par Jarodd dans le forum Autres Logiciels
    Réponses: 8
    Dernier message: 11/03/2014, 22h56
  3. remplacer espace par un tiret dans liens hypertexte
    Par kate59 dans le forum Langage
    Réponses: 2
    Dernier message: 21/07/2010, 11h09
  4. [RegEx] remplacer espacement par un tiret
    Par rich25200 dans le forum Langage
    Réponses: 3
    Dernier message: 19/11/2008, 17h58
  5. remplacer espace par tiret dans formulaire
    Par referenceur-tv dans le forum Langage
    Réponses: 17
    Dernier message: 03/06/2008, 14h52

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