如何在Javascript中处理换行?(来自PHP)

Zen*_*eno 8 html javascript php newline

我有这样的代码:

<?php
echo '<script type="text/javascript">';
echo 'var out="'.$txt.'";';
echo '</script>';
?>
Run Code Online (Sandbox Code Playgroud)

其中$ txt是一个PHP变量,可以包含这样的换行符:

line1
 line2 hello world
Run Code Online (Sandbox Code Playgroud)

哪个最终会像这样:

var out="line1
 line2 hello world";
Run Code Online (Sandbox Code Playgroud)

当然,这会导致Javascript错误.

处理这个问题的最佳方法是什么?out变量将在HTML textarea中使用,所以我认为它不能被解析<br>

zzz*_*Bov 32

$txt = str_replace( array( "\n", "\r" ), array( "\\n", "\\r" ), $txt );
Run Code Online (Sandbox Code Playgroud)

应该替换换行符.不要这样做.

这是JavaScript的字符串转义的简单实现.当您实际尝试格式化字符串以在JavaScript中使用时,更好的解决方案是使用json_encode:

$txt = json_encode($txt);
echo "<script>var out={$txt};</script>";
Run Code Online (Sandbox Code Playgroud)

json_encode将正确地转义字符串中的特殊字符,例如引号,制表符,换页符和其他特殊的unicode字符.它还将执行所有正确的转义,以转换对象,数组,数字和布尔值.