سلاسل متعددة الأسطر في 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`;
عودة