Многострочные строки в 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";

В качестве альтернативы вы можете использовать метод соединения и получить его:

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`;
Назад