Как мне разбить строку на несколько строк кода в JavaScript?
-
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);
Результатом будет:
- Это первая часть ....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.