nl2br没有清除所有新行

时间:2011-07-07 18:38:37

标签: javascript html

所以我对nl2br有一些奇怪的问题所以我有以下代码:

var infowindow = new google.maps.InfoWindow({
    content: "<?= nl2br($store["Stores"]["address"]) ?>"
});

查看浏览器源时的输出如下图所示:

enter image description here

正如您所看到的<br />已被正确引入但由于某种原因,该行仍会中断,从而导致javascript错误。

变量值是从表单

的文本区域输入中发布的值

4 个答案:

答案 0 :(得分:3)

documentation中的示例中可以看出,这似乎是预期的行为。如果你想替换所有换行符以将字符串放到一行,一个简单的正则表达式应该这样做。这就是我会尝试的方式(从头脑中打出来,未经测试):

<?= preg_replace('/(\r\n|\n|\r)/','<br/>',$store["Stores"]["address"]) ?>

答案 1 :(得分:2)

这是nl2br的预期行为。如果要删除字符串中的换行符,则必须使用preg_replace。

<?= preg_replace("/(\r\n|\n|\r)/", "<br />", $input)

答案 2 :(得分:1)

nl2br不会删除换行符,只是插入&lt; br /&gt;在他们面前。

http://php.net/manual/en/function.nl2br.php

答案 3 :(得分:0)

这是你的答案

var infowindow = new google.maps.InfoWindow({
    content: <>"<?= nl2br($store["Stores"]["address"]) ?>"</>.toString()
});