所以我对nl2br有一些奇怪的问题所以我有以下代码:
var infowindow = new google.maps.InfoWindow({
content: "<?= nl2br($store["Stores"]["address"]) ?>"
});
查看浏览器源时的输出如下图所示:
正如您所看到的<br />
已被正确引入但由于某种原因,该行仍会中断,从而导致javascript错误。
变量值是从表单
的文本区域输入中发布的值答案 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;在他们面前。
答案 3 :(得分:0)
这是你的答案
var infowindow = new google.maps.InfoWindow({
content: <>"<?= nl2br($store["Stores"]["address"]) ?>"</>.toString()
});