JavaScript中的多行字符串

当使用JavaScript进行编程时,常常会因无法通过在代码中的多行中输入多行字符串而感到困惑。 虽然使用PHP或Ruby等其他语言的任务不是问题,但使用JavaScript最初只能解决变通方法,其使用方法取决于个人喜好或浏览器支持。


明显的尝试

var str = "Dies ist eine
mehrzeilige
Zeichenkette.";

它失败了,然后解析器会报错(以“意外的标记 ILLEGAL”的形式),因为 JavaScript(与其他编程语言如 PHP 不同)会自动在每行末尾插入一个分号。:

var str = "Dies ist eine;
mehrzeilige;
Zeichenkette.";

该问题的第一个解决方案包括通过\ n和+运算符的简单字符串连接:

var str = "Dies ist eine\n" +
"mehrzeilige\n" +
"Zeichenkette.";

为了更快更简洁地完成操作,可以在每行末尾添加反斜杠。:

var str = "Dies ist eine\n\
mehrzeilige\n\
Zeichenkette";

或者,您也可以使用join方法并获取它:

var str = ["Dies ist eine",
"mehrzeilige",
"Zeichenkette"].join("\n");

另一方面,如果您的眼睛用正则表达式照亮,请使用以下语法(match()过滤注释之间的值):

var str = (function () {/*Dies ist eine
mehrzeilige
Zeichenkette*/}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];

重要说明:如果代码较小,则可以忽略此解决方案(因为注释也已删除)。

最好的变体在ECMA6和模板字符串的帮助下成功:

var str = `Dies ist eine
mehrzeilige
Zeichenkette`;
背部