2009-01-28 4 views
0

Je fais de remplacement de chaîne sur le texte Je reviens d'un service Web JSON, la chaîne peut ressembler à ceci:problème de remplacement de chaîne JavaScript

"Hello I am a string.\r\nThis is a second line.\r\n\r\nThis is a bigger space" 

Je veux remplacer tous les \r\n avec <br /> balises afin que le HTML est formaté, mais quand je fais:

var string = result.replace('\r\n','<br />'); 

Je ne reçois que d'abord remplacé, aucune autre.

Qu'est-ce que je fais mal?

Répondre

7

Essayez une regexp avec l'ensemble indicateur global:

var string = result.replace(/\r\n/g,'<br />'); 
+0

C'est fait. J'oublie que vous pouvez remplacer regex en javascript –

1

Rien. C'est exactement comme cela que fonctionne la fonction de remplacement JavaScript :)

Vous pouvez utiliser des expressions régulières pour remplacer toutes les occurrences.

var string = result.replace(/\r\n/g, '<br />'); 

Jetez un oeil à this lien

0

Tout en utilisant une expression régulière est le plus certainement ce que vous voulez utiliser dans ce cas, vous pouvez vous retrouver au moins une ou deux fois plus d'arriver à ce problème dans votre vie, et il y a une mince chance que vous vouliez faire un peu moins que ce qu'une expression régulière ferait naturellement. Pour cette raison, je vais vous montrer une méthode alternative qui, tout en accomplissant la même chose, laisse un peu plus de place pour la personnalisation potentielle:

<script> 
while (result.indexOf('\r\n') != -1) 
{ 
result = result.replace('\r\n', '<br />'); 
} 
string = result; 
</script> 

J'aime utiliser cette méthode (un bloc while) et le prototypage de modifier la méthode native replace() attachée à des objets String en JavaScript.

Questions connexes