JavaScript字符串替换问题

时间:2009-01-28 22:02:32

标签: javascript

我正在对文本进行一些字符串替换我从JSON Web服务返回,字符串可能如下所示:

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

我想用\r\n标记替换所有<br />以便格式化HTML,但是当我这样做时:

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

我只更换了第一个实例,而不是任何其他实例。

我做错了什么?

3 个答案:

答案 0 :(得分:7)

尝试设置全局标志的正则表达式:

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

答案 1 :(得分:1)

无。这就是JavaScript替换函数的工作方式:)

您可以使用正则表达式替换所有出现的内容。

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

查看this链接

答案 2 :(得分:0)

虽然在这种情况下使用正则表达式大多数肯定是你想要使用的东西,你可能会发现自己在生活中的某个时候至少会遇到一两次这个问题,并且有一个苗条的你可能想要比正则表达自然要做的少一些。出于这个原因,我将展示一种替代方法,在完成同样的事情的同时,为潜在的定制留出更多空间:

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

我喜欢使用此方法(while块)和原型设计来修改JavaScript中String对象附加的原生 replace()方法。