Yanıtlar:
Örneğinizde, dizeyi iki parçaya ayırabilirsiniz:
alert ( "Please Select file"
+ " to delete");
Veya, bir dize olduğunda, durumunuzda olduğu gibi, @Gumbo'nun önerdiği gibi bir ters eğik çizgi kullanabilirsiniz :
alert ( "Please Select file\
to delete");
Bu ters eğik çizgi yaklaşımının mutlaka tercih edilmediğini ve muhtemelen evrensel olarak desteklenmediğini unutmayın (Bu konuda sabit veriler bulmakta sorun yaşadım). Öyle değil de ECMA 5.1 spec .
Diğer kodlarla (tırnak içinde değil) çalışırken, satır kesmeleri yoksayılır ve mükemmel şekilde kabul edilir. Örneğin:
if(SuperLongConditionWhyIsThisSoLong
&& SuperLongConditionOnAnotherLine
&& SuperLongConditionOnThirdLineSheesh)
{
// launch_missiles();
}
Ters eğik çizgiyi satırın sonuna koyun:
alert("Please Select file\
to delete");
Düzenleme bu olduğunu nota sahip olmayan bir parçası ECMAScript dizeleri olarak hat sonlandırma karakterleri hiç izin verilmez:
' LineTerminator ' karakteri, ters eğik çizgi olsa bile dizgi değişmezinde görünemez
\
. Satır sonlandırıcı karakterinin bir dize değişmezinin dize değerinin bir parçası olmasına neden olmanın doğru yolu,\n
veya gibi bir kaçış dizisi kullanmaktır\u000A
.
Dize birleştirmeyi kullanmak daha iyi bir seçimdir.
ECMAScript5'teki 2015-01-05 Dize değişmezleri belirtilen sözdizimine izin verir:
Satır sonlandırıcı karakteri , boş karakter dizisini üretmek için bir LineContinuation'un parçası dışında, dize değişmezinde görünemez . Satır sonlandırıcı karakterinin bir dize hazır bilgisinin String değerinin bir parçası olmasına neden olmanın doğru yolu,
\n
veya gibi bir kaçış dizisi kullanmaktır\u000A
.
\n
\u000A
bir LineContinuation parçası dışında, bir dize değişmezinde görünemez . gibi bir çıkış sırasını kullanmak veya . "
\r\n
yerine \n
?
ECMAScript 6 şablon dizelerini sunar :
Şablon dizeleri, gömülü ifadelere izin veren dize değişmezleridir. Bunlarla birlikte çok satırlı dizeler ve dize enterpolasyon özellikleri kullanabilirsiniz.
Örneğin,
alert(`Please Select file
to delete`);
uyaracak
Please Select file
to delete
`
anahtarı var. Bir değiştirici olduğu için doğrudan yazılmaz. Muhtemelen iki kez basmanız gerektiğini düşündünüz, ancak bu iki tanesini yazacak. Yalnızca bir tane yazmak için boşluk çubuğuna basın.
Not ilginç. Denenmiş:
alert("Some \
string \
wrapped \
across \
mutliples lines.")
Ve bu işe yaradı. Ancak, kazada !, son ters eğik çizgiden sonra bir boşluk karakteri vardı (diğer tüm ters eğik çizgiler çizginin sonunda idi). Ve bu javascript bir hataya neden oldu! Bu alanı kaldırmak hatayı düzeltti.
Bu, Cordova kullanan Android için ADT'de.
Some\n<4 spaces>string\n<4 spaces>wrapped\n<4 spaces>across\n<4 spaces>multiple lines.
Sadece kullanabilirsiniz
1: alert("Please select file" +
2: " to delete");
Çalışmalı
Uzun bir dize sabitini mantıksal parçalara bölebilir ve bunları bir diziye atayabilirsiniz. Ardından join
, ayırıcı olarak boş bir dize ile bir yapın.
var stringArray = [
'1. This is first part....',
'2. This is second part.....',
'3. Finishing here.'
];
var bigLongString = stringArray.join('');
console.log(bigLongString);
Çıktı:
- Bu ilk bölüm .... 2. Bu ikinci kısım ..... 3. Burada bitiyor.
Bu şekilde hafif bir performans var ama kod okunabilirliği ve sürdürülebilirliği kazanıyorsunuz.
VSCode kullanıcıları için iyi bir çözüm , eğer bir dize birden fazla satıra bölünüyorsa soruna neden oluyorsa (uzun bir JWT jetonunu test etmek zorunda kaldım ve bir şekilde şablon değişmezlerini kullanmak hile yapmadı.)
Yukarıdaki önerilerin birçoğunu denedim ancak Chrome kod denetçisinde ILLEGAL karakter uyarısı aldım. Aşağıdakiler benim için çalıştı (yalnızca Chrome'da test edildi!)
alert('stuff on line 1\\nstuff on line 2);
gibi çıkıyor ...
stuff on line 1
stuff on line 2
NOT çift ters eğik çizgi !! ... bu önemli gibi görünüyor!
Kodda manuel olarak mola vermenize gerek yoktur. Sadece kırmak istediğiniz yere \ n ekleyin.
alert ("Please Select file \n to delete");
Bu uyarıyı aşağıdaki gibi gösterecektir:
Please select file
to delete.