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`;
背部