此代码
alert("Hello again! This is how we" + "\n" + "add line breaks to an alert box!");
不起作用。 Firefox JavaScript控制台名称错误为“未终止的字符串文字”,并指向“\ n之前的符号”。 我想用多行文本发出警报。请不要jQuery。
答案 0 :(得分:41)
尚未测试,但这是否有效?
alert("Hello again! This is how we \n add line breaks to an alert box!");
答案 1 :(得分:20)
这恰好发生在我身上......我需要将其更改为\\n
而不是\n
。
alert("Hello again! This is how we"+"\\n"+"add line breaks to an alert box!");
答案 2 :(得分:4)
如果要渲染警报服务器端(即:在网站上),则将更改\n
添加到\\n
应该有效,但如果您正在运行客户端(即:测试等),则只需{{} 1}}无法正常工作。例如,尝试在this网站上运行以下行。
\\n
或:
alert("Hello again! This is how we"+"\n"+"add line breaks to an alert box!");
在jsfiddle,第一个工作,因为它运行它客户端,但如果你在服务器端运行它,它需要双斜杠( alert("Hello again! This is how we" +"\\n" +"add line breaks to an alert box!");
)我不知道为什么这是,但我有经过多次测试。
希望这有帮助!
答案 3 :(得分:2)
问题已经过时但我想给出一个明确的答案,并解释为什么会有这样的人来到这里:
首先,问题中的JavaScript代码行没有任何问题。它绝对有效,不会产生解析错误。 Vitalmax问题的原因是什么?案件很可能是因为他/她没有发布包含该行的其他代码。
这是PHP中的一个示例,它说明了JS解析器抱怨语法的原因:
<?php
echo "alert('Hello again! This is how we\nadd line breaks to an alert box!');";
?>
然后解析的服务器端输出(这是浏览器得到的):
alert("Hello again! This is how we
add line breaks to an alert box!");
在JavaScript中,字符串必须才能有真正的换行符。相反,它们必须始终被转义(例如:\ n),因此浏览器会抱怨&#34;未终止的字符串文字&#34;在真正的休息时间。此规则有一些例外,例如水平制表符(\ t)。所以(在这种情况下)你必须使用\\ n来逃避换行符两次。因此,当PHP解析并将其从\\ n转换为\ n时,JavaScript可以将其从\ n转换为 [实际换行符] 。
正确的PHP示例是:
<?php
echo "alert('Hello again! This is how we\\nadd line breaks to an alert box!');";
?>
或者:
<?php
echo 'alert("Hello again! This is how we\nadd line breaks to an alert box!");';
?>
在第二种情况下,您不必双重转义它,因为带有单引号的PHP字符串中的转义字符不会被解码(\ n保持\ n)。
答案 4 :(得分:1)
<script>
alert("Hello. \n How are you?")
</script>
答案 5 :(得分:1)
这个脚本适合我。
<script>
alert("Hello. \r\n How are you?");
</script>
答案 6 :(得分:0)
error "missing ; before statement"
这告诉我这行代码上方缺少分号。通常的语法gotchya是if语句没有正确关闭括号。或大括号。
答案 7 :(得分:0)
使用单引号。
alert("Hello again! This is how we"+'\n'+"add line breaks to an alert box!");
答案 8 :(得分:0)
另一种方法是使用String.fromCharCode()
:
alert("This unit has been removed from stock" + String.fromCharCode(13) + " Do you wish to RETURN this unit to stock?");
答案 9 :(得分:0)
alert(“再次问好!这就是我们的方式” +“ \ n” +“将换行符添加到警报框中!”);
\ n->这正在工作 working with \n
\ n->不起作用,它只是将其视为警报msges的连续字符串 does not working with \n
答案 10 :(得分:0)
我遇到了\ n和\ n不起作用的问题,然后我尝试使用html中断标签,即
,因为该面板是用html编写的,并且可以正常工作。
示例-
some text here
some more text
输出:
class AddressSpecification(private val address: Address) : Specification {
override fun isSatisfiedBy(): Boolean {
return (address.municipality.isNotBlank()
&& if (address.neighbourhood == null) true else address.neighbourhood.isNullOrBlank()
&& address.postalCode.isNotBlank()
&& address.stateAbbreviation.isNotBlank())
&& if (address.street.apartment == null) true else address.street.apartment > 0
}
}
答案 11 :(得分:-1)
我建议的更实用的方法是定义自己的print()
函数,忘记手动为每行添加\\n
//define
var print = new Function("var lines=arguments[0]+'\\n';; for(var i=1;i<arguments.length;i++){lines+=arguments[i]+'\\n';} alert(lines);");
//call
print("say","hello","to","javascript","this","is ","awesome");
&#13;
现在你可以用多个参数调用print()
,每个参数都可以在一个单独的行中使用。