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 :

Convertir des \n en <br />


Sujet :

JavaScript

  1. #1
    Membre �clair� Avatar de PoZZyX
    Inscrit en
    Ao�t 2005
    Messages
    426
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2005
    Messages : 426
    Par d�faut Convertir des \n en <br />
    Bonjour bonjour,

    j'ai un petit probl�me que je n'arrive pas � r�soudre et je ne comprends pas pourquoi. J'�crit quelque chose dans une textarea et j'aimerais l'afficher dans un div. Jusque la pas de souci. Le probl�me c'est que quand j'essaie de convertir les retours � la ligne du textarea en <br />, �a me converti le premier, mais pas les suivants.

    Voila la fonction que j'utilise :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    function nl2br(str) 
    {
        return str.replace('\n', '<br />\n');
    }
    et quand je tappe dans textarea �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    salut
    comment
    tu 
    va ?
    �a me donne le code suivant :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    salut<br />
    comment
    tu 
    va ?
    comme on peut le voir il a mis un <br> que devant le 1er retour � la ligne.

    est-ce que quelqu'un saurait me dire ou est le probl�me ?

    merci d'avance pour votre aide !!

  2. #2
    Membre �clair� Avatar de FrankOVD
    Homme Profil pro
    Directeur des syst�mes d'information
    Inscrit en
    Juin 2005
    Messages
    438
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : Directeur des syst�mes d'information
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2005
    Messages : 438
    Par d�faut
    Essaie ceci :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    /**
     * Remplace les changements de ligne du texte
     * Paramètre : string str Chaîne à traiter
     **/
    function nl2br(str) {
      return str.replace(array("\r\n", "\r", "\n"), "<br>\n", str);
    }
    Cependant, je te conseille si possible de le faire � l'avance en PHP avec une fonction tr�s similaire :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    /**
     * Remplace les changements de ligne du texte
     * Paramètre : string $str Chaîne à traiter
     **/
    function nl2br($str) {
      return str_replace(array("\r\n", "\r", "\n"), "<br>\n", $str);
    }

  3. #3
    Membre �clair� Avatar de PoZZyX
    Inscrit en
    Ao�t 2005
    Messages
    426
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2005
    Messages : 426
    Par d�faut
    merci pour ton aide.

    je peux pas le faire en php parce que c'est pour faire de la pr�visualisation, donc je passe pas par le serveur. En fait c'est pour faire un "editeur" wysiwyg. Pour le moment je le fait �crire dans un textarea et en affichant la pr�visualisant dans un div, je sais pas si c'est la meilleur id�e j'ai pas r�ussi � "fusionner" les 2.

    sinon j'ai converti ta fonction en :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    return str.replace('\r\n','<br />').replace('\r', '<br />').replace('\n', '<br />');
    vu qu'il ne semblait pas appr�cier le array et le probl�me persiste.

  4. #4
    Membre �clair� Avatar de FrankOVD
    Homme Profil pro
    Directeur des syst�mes d'information
    Inscrit en
    Juin 2005
    Messages
    438
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : Directeur des syst�mes d'information
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2005
    Messages : 438
    Par d�faut
    EDIT : Voir post suivant

  5. #5
    Membre �clair� Avatar de FrankOVD
    Homme Profil pro
    Directeur des syst�mes d'information
    Inscrit en
    Juin 2005
    Messages
    438
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : Directeur des syst�mes d'information
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2005
    Messages : 438
    Par d�faut
    Probablement qu'il faudra que tu parcoure ta cha�ne de caract�res au complet puisque replace ne semble pas affecter toutes les occurences de ta cha�ne.

    J'ai du code qui devrait se rapprocher de la solution que tu recherches

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    /**
     * Remplace la caractère c1 par le caractère c2 dans la chaîne s
     *
     * Paramètres : char c1 (Caractère à remplacer)
     *              char c2 (Caractère de remplacement)
     *              str  s  (Chaîne à modifier)
     * Retourne   : str  s
     **/
    function remplacer(c1, c2, s) {
     for(var j = 0;j < s.length;j++) {
       if (c1.indexOf(s.charAt(j),0) != -1) s = addCar(c2, delCar(s, j), j--);
     }
     return s;
    }
     
    /**
     * Ajoute un caractere a un endroit precis dans une chaine
     * Paramètres : char c     (Caractère à ajouter)
     *              str  s     (Chaine à modifier)
     *              int  i     (Indice d'emplacement du caractere)
     * Retourne   : str chaine 
     **/
    function addCar(c, s, i) {
      var chaine = "";
      if(i>0) {
        for(var j=0;j<i;j++) {
          chaine += s.charAt(j);
        }
      }
      chaine += c;
      for(var j=i;j<s.length;j++) {
        chaine += s.charAt(j);
      }
      return chaine;
    }
     
    /**
     * Supprime un caractère à un endroit précis dans une chaîne
     * Paramètres : str  s     (Chaîne à modifier)
     *              int  i     (Indice d'emplacement du caractère)
     * Retourne   : str chaine
     **/
    function delCar(s, i) {
      var chaine = "";
      if(i>0) {
        for(var j=0;j<i;j++) {
          chaine += s.charAt(j);
        }
      }
      for(var j=(i+1);j<s.length;j++) {
        chaine += s.charAt(j);
      }
      return chaine;
    }
    Il suffirait de v�rifier si �a fonctionne avec "<br>" comme catact�re de remplacement. Probablement que certaines adaptations seraient n�cessaires pour g�rer des cha�nes plutot que des caract�res n�anmoins ce serait un bon d�but.

  6. #6
    Membre �clair� Avatar de PoZZyX
    Inscrit en
    Ao�t 2005
    Messages
    426
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2005
    Messages : 426
    Par d�faut
    ok merci je voulais �viter de parcourrir toute la chaine, mais bon je vais essayer comme �a vu que c'est ce que tu propose :d


    merci pour ton aide en tout cas

  7. #7
    Membre tr�s actif Avatar de Sacha999
    Inscrit en
    Mars 2007
    Messages
    294
    D�tails du profil
    Informations personnelles :
    �ge : 45

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Par d�faut
    Je pense que ca sera plus simple
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    return str.replace(/\n/g,'<br />\n');

  8. #8
    Membre �clair� Avatar de PoZZyX
    Inscrit en
    Ao�t 2005
    Messages
    426
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2005
    Messages : 426
    Par d�faut
    Citation Envoy� par Sacha999 Voir le message
    Je pense que ca sera plus simple
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    return str.replace(/\n/g,'<br />\n');
    ah oui merci �a marche � merveille !!!

    mais quelle est la diff�rence entre /\n/g et '\n' ???

  9. #9
    Membre tr�s actif Avatar de Sacha999
    Inscrit en
    Mars 2007
    Messages
    294
    D�tails du profil
    Informations personnelles :
    �ge : 45

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Par d�faut
    "/\n/g" c'est du peudo-regex, le "/g" signifie global, donc le remplacement sur tout le texte et pas que la 1er occurence (comportement par d�faut de JS)

  10. #10
    Membre �clair� Avatar de PoZZyX
    Inscrit en
    Ao�t 2005
    Messages
    426
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2005
    Messages : 426
    Par d�faut
    Citation Envoy� par Sacha999 Voir le message
    "/\n/g" c'est du peudo-regex, le "/g" signifie global, donc le remplacement sur tout le texte et pas que la 1er occurence (comportement par d�faut de JS)
    ah bah merci �a explique tout

  11. #11
    Membre �clair� Avatar de FrankOVD
    Homme Profil pro
    Directeur des syst�mes d'information
    Inscrit en
    Juin 2005
    Messages
    438
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : Directeur des syst�mes d'information
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2005
    Messages : 438
    Par d�faut
    Je me demande souvent il faut parfois utiliser des techniques de la sorte pour obtenir le comportement d�sir� avec Javascript, pourquoi ne pas fonctionner avec la m�me logique que les autres langages.

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

Discussions similaires

  1. [Eclipse 3.0.1] Convertir des sources Dos en Unix
    Par Bicnic dans le forum Eclipse Java
    R�ponses: 5
    Dernier message: 22/09/2009, 16h38
  2. [Fonction Oracle] Convertir des secondes en heure
    Par falcon dans le forum Oracle
    R�ponses: 12
    Dernier message: 18/11/2004, 11h56
  3. [Fonction SQL Server] Convertir des secondes en heure
    Par falcon dans le forum MS SQL Server
    R�ponses: 8
    Dernier message: 17/11/2004, 17h22
  4. R�ponses: 2
    Dernier message: 17/08/2004, 14h27
  5. Convertir des bmp en jpeg
    Par chris56 dans le forum Linux
    R�ponses: 8
    Dernier message: 10/10/2003, 21h23

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