如何在JavaScript警告框中添加新行?


当前回答

从ECMAScript 2015开始,你可以使用反勾号(' ')来包含多行字符串的模板字面量,如下所示:

警报('第 1 行 第 2 行');

输出:

Line1
Line2

其他回答

你必须使用双引号来显示特殊字符,如\n \t等…在js中的警告框 例如在PHP脚本中:

$string = 'Hello everybody \n this is an alert box';
echo "<script>alert(\"$string\")</script>";

但是,当您希望显示以双引号指定的字符串时,可能会出现第二个问题。

参见链接文本

如果字符串用双引号(")括起来,PHP将为特殊字符解释更多转义序列

转义序列\n被转换为0x0A ASCII转义字符,该字符不会显示在警告框中。解决方案包括转义这个特殊的序列:

$s = "Hello everybody \\n this is an alert box";
echo "<script>alert(\"$string\")</script>";

如果您不知道字符串是如何封装的,则必须将特殊字符转换为它们的转义序列

$patterns = array("/\\\\/", '/\n/', '/\r/', '/\t/', '/\v/', '/\f/');
$replacements = array('\\\\\\', '\n', '\r', '\t', '\v', '\f');
$string = preg_replace($patterns, $replacements, $string);
echo "<script>alert(\"$string\")</script>";

从ECMAScript 2015开始,你可以使用反勾号(' ')来包含多行字符串的模板字面量,如下所示:

警报('第 1 行 第 2 行');

输出:

Line1
Line2

我看到有些人在MVC中遇到了问题,所以……使用模型传递“\n”的一个简单方法是使用HTML,在我的情况下甚至使用翻译文本。Raw来插入文本。这为我解决了问题。在下面的代码中,Model。警报可以包含换行符,如“Hello\nWorld”…

alert("@Html.Raw(Model.Alert)");

使用javascript的新行字符代替'\n'.. "Hello\nWorld"使用"Hello\x0AWorld" 效果很好!!

当你想用javascript写一个php变量的alert时,你必须在“\n”之前加一个“\”。 相反,弹出的警告不起作用。

ex:

PHP :
$text = "Example Text : \n"
$text2 = "Example Text : \\n"

JS:
window.alert('<?php echo $text; ?>');  // not working
window.alert('<?php echo $text2; ?>');  // is working