जावास्क्रिप्ट में मल्टी-लाइन स्ट्रिंग्स

जब जावास्क्रिप्ट के साथ प्रोग्रामिंग अक्सर कोड में कई लाइनों में उन्हें दर्ज करके बहु-लाइन स्ट्रिंग्स का एहसास करने में असमर्थता पर ठोकर खाता है। जबकि अन्य भाषाओं जैसे कि PHP या रूबी में कार्य कोई समस्या नहीं है, जावास्क्रिप्ट के साथ आप शुरू में केवल वर्कआर्डस के साथ कर सकते हैं, जिसका उपयोग व्यक्तिगत स्वाद या ब्राउज़र समर्थन द्वारा तय किया जाता है।


स्पष्ट प्रयास

var str = "Dies ist eine
mehrzeilige
Zeichenkette.";

विफल हो जाता है और पार्सर कई चीजों के बारे में शिकायत करता है (अप्रत्याशित टोकन ILLEGAL के रूप में) क्योंकि जावास्क्रिप्ट (अन्य प्रोग्रामिंग भाषाओं जैसे 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");

यदि, दूसरी ओर, आपकी आँखें नियमित अभिव्यक्तियों के साथ प्रकाश करती हैं, तो निम्नलिखित सिंटैक्स का उपयोग करें (मिलान (टिप्पणियों के बीच मानों को फ़िल्टर करता है)):

var str = (function () {/*Dies ist eine
mehrzeilige
Zeichenkette*/}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];

महत्वपूर्ण: यदि कोड को छोटा किया जाता है, तो इस समाधान को भुलाया जा सकता है (क्योंकि टिप्पणियाँ भी हटा दी जाती हैं)।

सबसे अच्छा संस्करण ECMA6 और टेम्पलेट स्ट्रिंग्स की मदद से सफल होता है:

var str = `Dies ist eine
mehrzeilige
Zeichenkette`;
वापस