Как мне разбить строку на несколько строк кода в JavaScript?

StackOverflow https://stackoverflow.com/questions/508269

  •  21-08-2019
  •  | 
  •  

Вопрос

Есть ли в JavaScript символ для разбиения строки кода, чтобы она считывалась как непрерывная, несмотря на то, что находится на новой строке?

Что-то вроде....

1. alert ( "Please Select file   
2. \ to delete" );
Это было полезно?

Решение

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

alert ( "Please Select file"
 + " to delete");

Или, когда это строка, как в вашем случае, вы можете использовать обратная косая черта как предложил @Gumbo:

alert ( "Please Select file\
 to delete");

Обратите внимание, что этот подход с обратной косой чертой является не обязательно предпочтительный, и, возможно, не поддерживается повсеместно (у меня возникли проблемы с поиском достоверных данных по этому вопросу).Это так нет в Спецификация ECMA 5.1.

При работе с другим кодом (не в кавычках) разрывы строк игнорируются и вполне приемлемы.Например:

if(SuperLongConditionWhyIsThisSoLong
  && SuperLongConditionOnAnotherLine
  && SuperLongConditionOnThirdLineSheesh)
{
    // launch_missiles();
}

Другие советы

Поставьте обратную косую черту в конце строки:

alert("Please Select file\
 to delete");

Редактировать    Я должен отметить, что это нет часть Строки ECMAScript как символы , завершающие строку вообще не допускаются:

А 'Линейный определитель' символ не может отображаться в строковом литерале, даже если ему предшествует обратная косая черта \.Правильный способ сделать символ окончания строки частью строкового значения строкового литерала - использовать escape-последовательность, такую как \n или \u000A.

Таким образом, использование конкатенации строк является лучшим выбором.


Обновление 2015-01-05    Строковые литералы в ECMAScript5 разрешить указанный синтаксис:

Символ окончания строки не может отображаться в строковом литерале, за исключением случаев, когда он является частью Продолжение линии чтобы создать пустую последовательность символов.Правильный способ сделать символ окончания строки частью строкового значения строкового литерала - использовать escape-последовательность, такую как \n или \u000A.

ECMAScript 6 вводит строки шаблона:

Строки шаблона - это строковые литералы, допускающие встроенные выражения.С ними можно использовать многострочные строки и функции интерполяции строк .

Например,

alert(`Please Select file   
to delete`);

предупредит

Please Select file   
to delete

Разрежьте бечевку на две части 

alert ("Please select file " +
       "to delete");

Интересно отметить.Пытался:

alert("Some \
    string \
    wrapped \
    across \
    mutliples lines.")

И это сработало.Однако, случайно!, после последней обратной косой черты был пробел (все остальные обратные косые черты были в конце строки).И это вызвало ошибку в javascript!Однако удаление этого пробела исправило ошибку.

Это в ADT для Android с использованием Cordova.

Вы можете просто использовать

1:  alert("Please select file" +
2:        " to delete");

Это должно сработать

Вы можете разбить длинную строковую константу на логические блоки и преобразовать их в массив.Затем сделайте join с пустой строкой в качестве разделителя.

var stringArray = [
  '1. This is first part....',
  '2. This is second part.....',
  '3. Finishing here.'
];

var bigLongString = stringArray.join('');
console.log(bigLongString);

Результатом будет:

  1. Это первая часть ....2.Это вторая часть.....3.Заканчиваю здесь.

Таким образом, производительность немного снижается, но вы улучшаете читаемость кода и ремонтопригодность.

Я попробовал несколько приведенных выше предложений, но получил предупреждение о НЕДОПУСТИМОМ символе в Chrome code inspector.Следующее сработало для меня (хотя тестировалось только в Chrome!)

alert('stuff on line 1\\nstuff on line 2);

выходит так...

stuff on line 1
stuff on line 2

ОБРАТИТЕ ВНИМАНИЕ на двойную обратную косую черту !!...это кажется важным!

Нет необходимости в каком-либо ручном взломе кода.Просто добавьте там, где вы хотите сделать перерыв.

alert ("Please Select file \n to delete");

Это покажет предупреждение, подобное

Please select file 
to delete.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top