我正在对文本进行一些字符串替换我从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 />');
我只更换了第一个实例,而不是任何其他实例。
我做错了什么?
答案 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()方法。