2009-04-24 8 views

Répondre

21
var newString=oldString.replace(/\n/g,"<br />"); 
+2

-1: S'il y a plus d'un saut de ligne, cela échouera. En Javascript, vous devez utiliser/pattern/g. – eyelidlessness

+2

il a été corrigé depuis :) –

5

+1 pour la réponse Cliquez Upvote. Je ferais simplement remarquer qu'en utilisant ce style de définition de chaînes, vous aurez un tas d'espaces supplémentaires. Faire simple remplacer la nouvelle ligne vous donnera en fait cette chaîne:

"This is man.<br />  Man like dog." 

La solution de base est de changer votre fonction de remplacement:

newString = oldString.replace(/\n\s*/g, "<br />"); 

Ou encore mieux (à mon humble avis), définir vos chaînes comme celui-ci :

var a = "This is man.\n" 
     + "Man like dog." 
; 

cela signifie que vous pouvez toujours obtenir agréable sans les frais généraux indenter supplémentaire étant ajoutée dans vos variables, plus, il vous permet d'ajouter des commentaires facilement:

var a = "This is man.\n" // this is the first line. 
     + "Man like dog." // and woo a comment here too 
; 
+0

Voir mon commentaire sur Cliquez sur la réponse de Upvote. – eyelidlessness

+2

@click, upvote +1 à votre commentaire que vous avez mis +1 parce que j'ai +1 voté votre réponse. – nickf

+0

CECI EST AMUSANT !!!! 1' – nickf

10

Pour être complète: Je l'ai rencontré des cas où « \ n » ne fonctionnait pas, dans ces cas j'ai utilisé:

someString.replace(/\n/g,'<br />') 
      .replace(/\r/g,'<br />') 
      .replace(/\r\n/g,'<br />'); 
+6

str.replace (/ \ r \ n?/G, '
') .réplace (/ \ n/g, '
'); Pour éviter la conversion \ r \ n à

eyelidlessness

+1

@eyelidlessness (doit être lourd, eyelidlessness): D'accord, nous allons régler sur someString.replace | alors (/ \ n \ r \ n/g, '
'?). – KooiInc

Questions connexes