มีอักขระใน JavaScript เพื่อแยกบรรทัดของรหัสเพื่อให้สามารถอ่านได้อย่างต่อเนื่องแม้จะอยู่ในบรรทัดใหม่หรือไม่?
สิ่งที่ต้องการ....
1. การแจ้งเตือน ("กรุณาเลือกไฟล์ 2. \ เพื่อลบ ");
มีอักขระใน JavaScript เพื่อแยกบรรทัดของรหัสเพื่อให้สามารถอ่านได้อย่างต่อเนื่องแม้จะอยู่ในบรรทัดใหม่หรือไม่?
สิ่งที่ต้องการ....
1. การแจ้งเตือน ("กรุณาเลือกไฟล์ 2. \ เพื่อลบ ");
คำตอบ:
ในตัวอย่างของคุณคุณสามารถแบ่งสตริงออกเป็นสองส่วน:
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เนื่องจากไม่อนุญาตให้ใช้อักขระที่ลงท้ายด้วยบรรทัด :
A ' LineTerminatorตัวอักษร'
\
ไม่สามารถปรากฏในตัวอักษรสตริงแม้ว่านำหน้าด้วยเครื่องหมาย วิธีที่ถูกต้องจะทำให้เกิดตัวละครสายเทอร์มิให้เป็นส่วนหนึ่งของค่าสตริงของตัวอักษรสตริงคือการใช้ลำดับหนีเช่นหรือ\n
\u000A
ดังนั้นการใช้การต่อสตริงเป็นตัวเลือกที่ดีกว่า
อัปเดต 2015-01-05 สตริงตัวอักษรใน ECMAScript5อนุญาตไวยากรณ์ที่กล่าวถึง:
อักขระตัวคั่นบรรทัดไม่สามารถปรากฏในสตริงตัวอักษรยกเว้นเป็นส่วนหนึ่งของLineContinuationเพื่อสร้างลำดับอักขระว่างเปล่า วิธีที่ถูกต้องจะทำให้เกิดตัวละครสายเทอร์มิให้เป็นส่วนหนึ่งของค่าสายอักขระของตัวอักษรสตริงคือการใช้ลำดับหนีเช่นหรือ
\n
\u000A
\n
หรือ\u000A
. "
\r\n
แทนที่จะเป็น\n
?
ECMAScript 6 แนะนำสตริงเท็มเพลต:
สตริงเทมเพลตเป็นตัวอักษรสตริงที่อนุญาตให้มีการแสดงออกที่ฝังตัว คุณสามารถใช้สตริงหลายบรรทัดและคุณสมบัติการแก้ไขสตริงด้วย
ตัวอย่างเช่น,
alert(`Please Select file
to delete`);
จะแจ้งเตือน
Please Select file
to delete
`
กุญแจ เนื่องจากมันเป็นตัวดัดแปลงจึงไม่ได้เขียนโดยตรง นั่นอาจเป็นเหตุผลว่าทำไมคุณถึงคิดว่าคุณควรกดสองครั้ง แต่มันจะเขียนสองอัน กด spacebar เพื่อเขียนเพียงหนึ่ง
แยกสตริงออกเป็นสองส่วน
alert ("Please select file " +
"to delete");
ที่น่าสนใจที่จะต้องทราบ พยายาม:
alert("Some \
string \
wrapped \
across \
mutliples lines.")
และสิ่งนี้ใช้ได้ผล อย่างไรก็ตามเมื่อเกิดอุบัติเหตุ! มีอักขระเว้นวรรคตามแบ็กสแลชสุดท้าย (แบ็กสแลชอื่น ๆ ทั้งหมดอยู่ที่ท้ายบรรทัด) และสิ่งนี้ทำให้เกิดข้อผิดพลาดในจาวาสคริปต์! แม้ว่าการลบพื้นที่นี้จะแก้ไขข้อผิดพลาดได้
นี่คือใน ADT สำหรับ Android โดยใช้ Cordova
Some\n<4 spaces>string\n<4 spaces>wrapped\n<4 spaces>across\n<4 spaces>multiple lines.
คุณสามารถใช้
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 จบที่นี่
วิธีนี้มีประสิทธิภาพเพียงเล็กน้อย แต่คุณสามารถอ่านและบำรุงรักษาโค้ดได้
ทางออกที่ดี สำหรับผู้ใช้ VSCodeหากสตริงที่แบ่งเป็นหลายบรรทัดทำให้เกิดปัญหา (ฉันต้องเผชิญกับปัญหานี้เมื่อฉันต้องทดสอบโทเค็น JWT ที่มีความยาว
ฉันลองคำแนะนำด้านบนจำนวนหนึ่ง แต่ได้รับคำเตือนเกี่ยวกับตัวอักษร ILLEGAL ในเครื่องมือตรวจสอบโค้ด Chrome รายการต่อไปนี้ใช้ได้สำหรับฉัน (ผ่านการทดสอบใน Chrome เท่านั้น!)
alert('stuff on line 1\\nstuff on line 2);
ออกมาเหมือน ...
stuff on line 1
stuff on line 2
หมายเหตุแบ็กสแลชสองครั้ง !! ... นี่น่าจะสำคัญนะ!
ไม่จำเป็นต้องมีการแบ่งด้วยตนเองในรหัส เพียงเพิ่ม \ n ตำแหน่งที่คุณต้องการทำลาย
alert ("Please Select file \n to delete");
นี้จะแสดงการแจ้งเตือนเช่น
Please select file
to delete.