জাভাস্ক্রিপ্টে মাল্টলাইন স্ট্রিং তৈরি করা হচ্ছে


2607

আমার কাছে রুবিতে নিম্নলিখিত কোড রয়েছে। আমি এই কোডটি জাভাস্ক্রিপ্টে রূপান্তর করতে চাই। জেএস এর সমমানের কোডটি কী?

text = <<"HERE"
This
Is
A
Multiline
String
HERE


এটি অর্জনের জন্য বিভিন্ন উপায়ে এটি দেখুন। আমি প্রতিটি পদ্ধতির পারফরম্যান্সও যুক্ত করেছি স্ট্যাকওভারফ্লো.com
23867090/

উত্তর:


3312

হালনাগাদ:

ইসমাস্ক্রিপ্ট ((ইএস)) একটি নতুন ধরণের আক্ষরিক অর্থাত্ টেম্পলেট আক্ষরিক পরিচয় করিয়ে দেয় । তাদের অনেকগুলি বৈশিষ্ট্য রয়েছে, অন্যের মধ্যে পরিবর্তনীয় অন্তরঙ্গকরণ রয়েছে, তবে সবচেয়ে গুরুত্বপূর্ণ বিষয় এই প্রশ্নের জন্য, তারা বহুবিধ হতে পারে।

একটি টেম্পলেট আক্ষরিক ব্যাকটিক্স দ্বারা সীমিত করা হয় :

var html = `
  <div>
    <span>Some HTML here</span>
  </div>
`;

(দ্রষ্টব্য: আমি স্ট্রিংগুলিতে এইচটিএমএল ব্যবহার করার পক্ষে পরামর্শ দিচ্ছি না)

ব্রাউজার সমর্থন ঠিক আছে , তবে আপনি আরও সামঞ্জস্যপূর্ণ হতে ট্রান্সপোর্টার ব্যবহার করতে পারেন ।


আসল ES5 উত্তর:

জাভাস্ক্রিপ্টের এখানে একটি নথির সিনট্যাক্স নেই। আক্ষরিক নতুন লাইনটি এড়াতে পারবেন, তবে এটি নিকটে আসে:

"foo \
bar"

231
সতর্কতা অবলম্বন করুন: কিছু ব্রাউজার ধারাবাহিকতায় নতুন লাইন sertোকাবে, কিছু করবে না।
স্ট্যাটিকসান

35
ভিজ্যুয়াল স্টুডিও 2010 এছাড়াও এই সিনট্যাক্স দ্বারা বিভ্রান্ত বলে মনে হচ্ছে।
jcollum

47
@ নাট এটি ইসিএমএ -262 5 তম সংস্করণ বিভাগে 7.8.4 এ নির্দিষ্ট করা হয়েছে এবং লাইনকন্টিনয়েজ নামে পরিচিত : "একটি লাইন টার্মিনেটর অক্ষর একটি স্ট্রিং আক্ষরিক আকারে উপস্থিত হতে পারে না, খালি অক্ষরের ক্রম উত্পাদন করার জন্য লাইনকন্টিনুয়েশনের অংশ হিসাবে । একটি কারণ হওয়ার সঠিক উপায় স্ট্রিং আক্ষরিকের স্ট্রিং মানের অংশ হওয়ার জন্য লাইন টার্মিনেটর চরিত্রটি হ'ল escape n বা 000 u000A এর মতো একটি পালানোর ক্রম ব্যবহার করা। "
কিছু

16
ব্রাউজাররা যখন এটি বেমানান আচরণ করে আপনি কেন এটি করবেন তা আমি দেখতে পাচ্ছি না। "লাইন 1 \ n" + "লাইন 2" একাধিক লাইন জুড়ে যথেষ্ট পঠনযোগ্য এবং আপনার সামঞ্জস্যপূর্ণ আচরণের গ্যারান্টিযুক্ত।
স্যামস্টেফেন্স

11
"ব্রাউজার সমর্থন ঠিক আছে" ... আইই 11 দ্বারা সমর্থিত নয়
টম এন্ড্রেসেক

1317

ES6 আপডেট:

প্রথম উত্তরের হিসাবে, ES6 / ব্যাবেলের সাহায্যে উল্লেখ করা হয়েছে, আপনি এখন ব্যাকটিক্স ব্যবহার করে কেবল বহু-লাইন স্ট্রিং তৈরি করতে পারেন:

const htmlString = `Say hello to 
multi-line
strings!`;

ইন্টারপোলটিং ভেরিয়েবলগুলি একটি জনপ্রিয় নতুন বৈশিষ্ট্য যা ব্যাক-টিকের সীমানাযুক্ত স্ট্রিংগুলির সাথে আসে:

const htmlString = `${user.name} liked your post about strings`;

এটি কেবল সংক্ষেপে স্থানান্তরিত করে:

user.name + ' liked your post about strings'

আসল ES5 উত্তর:

গুগলের জাভাস্ক্রিপ্ট স্টাইল গাইড নতুন লাইনের হাতছাড়া হওয়ার পরিবর্তে স্ট্রিং কনটেনটেশন ব্যবহার করার পরামর্শ দেয়:

এটা করো না:

var myString = 'A rather long string of English text, an error message \
                actually that just keeps going and going -- an error \
                message to make the Energizer bunny blush (right through \
                those Schwarzenegger shades)! Where was I? Oh yes, \
                you\'ve got an error and all the extraneous whitespace is \
                just gravy.  Have a nice day.';

প্রতিটি লাইনের প্রারম্ভিক সাদা স্থানটি সঙ্কলনের সময় নিরাপদে ছিনিয়ে নেওয়া যায় না; স্ল্যাশের পরে হোয়াইটস্পেসের ফলে জটিল ত্রুটি হবে; এবং যখন বেশিরভাগ স্ক্রিপ্ট ইঞ্জিন এটি সমর্থন করে, এটি ECMAScript এর অংশ নয়।

পরিবর্তে স্ট্রিং সংক্ষেপণ ব্যবহার করুন:

var myString = 'A rather long string of English text, an error message ' +
               'actually that just keeps going and going -- an error ' +
               'message to make the Energizer bunny blush (right through ' +
               'those Schwarzenegger shades)! Where was I? Oh yes, ' +
               'you\'ve got an error and all the extraneous whitespace is ' +
               'just gravy.  Have a nice day.';

19
আমি গুগলের সুপারিশ বুঝতে পারি না। অত্যন্ত পুরানো ব্যতীত সমস্ত ব্রাউজারগুলি নিউলাইন পদ্ধতির পরে ব্যাকস্ল্যাশ সমর্থন করে এবং পশ্চাদপটে সামঞ্জস্যের জন্য ভবিষ্যতে এটি চালিয়ে যেতে থাকবে। আপনার কেবলমাত্র একবার এড়াতে হবে যদি আপনার নিশ্চিত হওয়া দরকার যে প্রতিটি লাইনের শেষে একটি এবং একটি নতুন লাইন (বা কোনও নতুন লাইন) যুক্ত করা হয়নি (অনুমোদিত উত্তর সম্পর্কে আমার মন্তব্যও দেখুন)।
ম্যাট ব্রাউন

6
নোট করুন যে টেম্পলেট স্ট্রিংগুলি আইই 11, ফায়ারফক্স 31, ক্রোম 35, বা সাফারি 7 তে সমর্থিত নয় k
এরিকপ

29
@ ম্যাটব্রাউন গুগলের সুপারিশটি ইতিমধ্যে তাদের দ্বারা ডকুমেন্টেড রয়েছে কারণগুলির গুরুত্বের ভিত্তিতে: (1) প্রতিটি লাইনের প্রারম্ভিক শ্বেত স্পেস [উদাহরণস্বরূপ, আপনি আপনার স্ট্রিংয়ে সেই সাদা স্থানটি চান না তবে কোডটিতে এটি দেখতে সুন্দর দেখায়) ] (২) স্ল্যাশের পরে শ্বেত স্পেসের ফলে জটিল ত্রুটি হবে [যদি আপনি \ notice \ instead এর পরিবর্তে কোনও লাইন শেষ করেন তবে এটি লক্ষ্য করা মুশকিল] এবং (৩) বেশিরভাগ স্ক্রিপ্ট ইঞ্জিনগুলি এটিকে সমর্থন করে তবে এটি ইসএমএসক্রিপ্টের অংশ নয় [অর্থাৎ কেন? নন-স্ট্যান্ডার্ড বৈশিষ্ট্যগুলি ব্যবহার করবেন?] মনে রাখবেন এটি একটি স্টাইল গাইড, যা কোড পড়া + বজায় রাখা + ডিবাগ করা সহজ করে: কেবল "এটি কাজ করে না" সঠিক।
শ্রীভাতসআর

1
আশ্চর্যজনক যে এত বছর পরেও স্ট্রিং কনটেনটেশন এটির সাথে যাওয়ার সবচেয়ে ভাল / নিরাপদ / সবচেয়ে অনুগত উপায়। টেমপ্লেট লিটারেলস (উপরের উত্তর) আইই তে কাজ করে না এবং রেখাগুলি অবলম্বন করাই কেবল একটি জগাখিচুড়ি যা আপনি শীঘ্রই অনুশোচনা করতে চলেছেন
টিয়াগো ডুয়ার্তে

1
অ্যান্ড্রয়েডের পুরানো সংস্করণগুলি ব্যাকটিক্স সমর্থন করে না এমন কঠোর উপায়ে খুঁজে পেয়েছে তাই যদি আপনার ওয়েবভিজিউড ব্যবহার করে কোনও অ্যান্ড্রয়েড অ্যাপ থাকে তবে আপনার ব্যাকটিকগুলি আপনার অ্যাপ্লিকেশনটি চালিত করার কারণ নয়!
মাইকেল জ্বর

683

প্যাটার্নটি text = <<"HERE" This Is A Multiline String HEREজেএসে উপলভ্য নয় (আমি মনে করি এটি আমার ভাল পুরানো পার্ল দিনগুলিতে অনেক বেশি ব্যবহার হয়েছিল)।

জটিল বা দীর্ঘ মাল্টলাইন স্ট্রিংগুলির সাথে নজরদারি রাখতে আমি মাঝে মাঝে একটি অ্যারে প্যাটার্ন ব্যবহার করি:

var myString = 
   ['<div id="someId">',
    'some content<br />',
    '<a href="#someRef">someRefTxt</a>',
    '</div>'
   ].join('\n');

বা বেনামে থাকা প্যাটার্নটি ইতিমধ্যে দেখিয়েছে (নিউলাইন এড়ানোর), যা আপনার কোডে একটি কুৎসিত ব্লক হতে পারে:

    var myString = 
       '<div id="someId"> \
some content<br /> \
<a href="#someRef">someRefTxt</a> \
</div>';

এখানে আরও একটি অদ্ভুত তবে কাজ করার 'কৌশল' 1 :

var myString = (function () {/*
   <div id="someId">
     some content<br />
     <a href="#someRef">someRefTxt</a>
    </div>        
*/}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];

বাহ্যিক সম্পাদনা: jsfiddle

ES20xx টেমপ্লেট স্ট্রিংগুলি ব্যবহার করে একাধিক লাইনে ছড়িয়ে থাকা স্ট্রিংগুলিকে সমর্থন করে :

let str = `This is a text
    with multiple lines.
    Escapes are interpreted,
    \n is a newline.`;
let str = String.raw`This is a text
    with multiple lines.
    Escapes are not interpreted,
    \n is not a newline.`;

1 দ্রষ্টব্য: আপনার কোডটি ক্ষুদ্রতর / বিবেচনা করার পরে এটি হারিয়ে যাবে


34
দয়া করে অ্যারে প্যাটার্নটি ব্যবহার করবেন না। এটি বেশিরভাগ ক্ষেত্রে সাদামাটা-পুরানো স্ট্রিং মনগড়া তুলনায় ধীর হবে।
বিএমিনার

73
অ্যারে প্যাটার্নটি আরও পঠনযোগ্য এবং কোনও অ্যাপ্লিকেশনটির জন্য কর্মক্ষমতা হ্রাস প্রায়শই নগণ্য। যেহেতু পারফ টেস্টটি দেখায়, এমনকি আই 77 প্রতি সেকেন্ডে কয়েক হাজার কাজ করতে পারে।
বেনিয়ামিন আটকিন

19
একটি মার্জিত বিকল্পের জন্য +1 যা সমস্ত ব্রাউজারগুলিতে কেবল একইভাবে কাজ করে না, তবে ভবিষ্যতের প্রমাণও।
পাভেল

26
@ কোইইঙ্ক আপনার পরীক্ষাগুলি ইতিমধ্যে তৈরি অ্যারে দিয়ে শুরু হয়, যা ফলাফলকে আঁকায়। আপনি অ্যারের আরম্ভের যুক্ত করে থাকেন, সোজা সংযুক্তকরণের দ্রুততর jsperf.com/string-concat-without-sringbuilder/7 দেখুন stackoverflow.com/questions/51185/... এটা ঠিক আছে হতে পারে, নতুন লাইন জন্য একটি কৌতুক হিসাবে, কিন্তু এটা স্পষ্টভাবে এর যতটা প্রয়োজন তার চেয়ে বেশি কাজ করা
হুয়ান মেন্ডেস

9
@ বিমিনার: ১) "অকালীন অপটিমাইজেশন হ'ল সমস্ত অশুভের মূল" - ডোনাল্ড নুথ এবং ২) 'পঠনযোগ্যতা' দর্শকের চোখে পড়ে
পল বেনেট

348

আপনি পারেন বিশুদ্ধ জাভাস্ক্রিপ্ট মধ্যে একাধিক লাইন স্ট্রিং আছে।

এই পদ্ধতি ফাংশন ধারাবাহিকতাতে, যা উপর ভিত্তি করে তৈরি বাস্তবায়ন নির্ভর হতে সংজ্ঞায়িত । এটি সর্বাধিক ব্রাউজারগুলিতে কাজ করে (নীচে দেখুন), তবে ভবিষ্যতে এটি এখনও কাজ করবে এমন কোনও গ্যারান্টি নেই, সুতরাং এটির উপর নির্ভর করবেন না।

নিম্নলিখিত ফাংশন ব্যবহার করে:

function hereDoc(f) {
  return f.toString().
      replace(/^[^\/]+\/\*!?/, '').
      replace(/\*\/[^\/]+$/, '');
}

আপনার এখানে এখানে নথি থাকতে পারে:

var tennysonQuote = hereDoc(function() {/*!
  Theirs not to make reply,
  Theirs not to reason why,
  Theirs but to do and die
*/});

পদ্ধতিটি নিম্নলিখিত ব্রাউজারগুলিতে সফলভাবে পরীক্ষা করা হয়েছে (উল্লেখ নেই = পরীক্ষিত নয়):

  • আইই 4 - 10
  • অপেরা 9.50 - 12 (9- এ নয়)
  • সাফারি 4 - 6 (3- তে নয়)
  • ক্রোম 1 - 45
  • ফায়ারফক্স 17 - 21 ( 16- তে নয় )
  • রেকনক 0.7.0 - 0.8.0
  • কনকরার ৪.7.৪ সমর্থিত নয়

আপনার মিনিফায়ারের সাথে সতর্ক থাকুন। এটি মন্তব্য মুছে ফেলার ঝোঁক। YUI সংক্ষেপক জন্য , একটি মন্তব্য দিয়ে শুরু/*! (যা আমি ব্যবহার করেছি তার মতো) দিয়ে সংরক্ষণ করা হবে।

আমি মনে করি আসল সমাধান হ'ল কফিস্ক্রিপ্ট ব্যবহার করা ।

ES6 আপডেট: আপনি মন্তব্য দিয়ে একটি ফাংশন তৈরি এবং মন্তব্যটিতে স্ট্রিং চালানোর পরিবর্তে ব্যাকটিক ব্যবহার করতে পারেন। রেজেক্স কেবল স্ট্রিপ স্পেসগুলিতে আপডেট করা দরকার। এটি করার জন্য আপনার কাছে স্ট্রিং প্রোটোটাইপ পদ্ধতিও থাকতে পারে:

let foo = `
  bar loves cake
  baz loves beer
  beer loves people
`.removeIndentation()

এটা অনেক ঠান্ডা. কারও এটিকে লেখা উচিত .আরমিভ ইনডেন্টেশন স্ট্রিং পদ্ধতি ...;)


232
কি!? মাল্টিলাইন স্ট্রিং হিসাবে একটি বহুরেখা মন্তব্য হ্যাক করার জন্য একটি ফাংশন তৈরি এবং ডিসকোপিলিং? এখন যে কুৎসিত।
fforw

4
jsfiddle.net/fqpwf ক্রোম 13 এবং আইই 8/9 এ কাজ করে তবে এফএফ 6 নয়। আমি এটি বলতে ঘৃণা করি তবে আমি এটি পছন্দ করি এবং এটি প্রতিটি ব্রাউজারের ইচ্ছাকৃত বৈশিষ্ট্য হতে পারে (যাতে এটি অদৃশ্য হয়ে না যায়), আমি এটি ব্যবহার করব।
জেসন ক্লেবান

2
@ ইউওস: এটি ইচ্ছাকৃত হওয়ার জন্য, এটি অনুমানের মধ্যে থাকতে হবে; বা এত বেশি ব্যবহৃত, ব্রাউজার নির্মাতারা এই "দুর্ঘটনাজনিত" বৈশিষ্ট্যটি সরাতে চাইবে না। যদিও পরীক্ষাগুলির জন্য ধন্যবাদ ... কিছু কফিসক্রিপ্ট চেষ্টা করুন।
জর্দো

1
a.toString ()। স্ট্রিং (15, a.toString ()। দৈর্ঘ্য -4) এছাড়াও কাজ করে এবং পুরো স্ট্রিংটি স্ক্যান করার দরকার নেই (যদিও এটি সম্ভবত সম্ভব হবে এবং গণনা এটিকে যাইহোক অন্য স্ক্যান করে তোলে Oh ওহ ওয়েল ।)
লোডেভিজক

2
অত্যন্ত কার্যকর। আমি এটি (জেসমিন) ইউনিট পরীক্ষার জন্য ব্যবহার করছি, তবে এটি উত্পাদন কোডের জন্য এড়ানো হচ্ছে iding
জেসন

207

তুমি এটি করতে পারো...

var string = 'This is\n' +
'a multiline\n' + 
'string';

প্রথম উদাহরণটি দুর্দান্ত এবং সাধারণ। \ পদ্ধতির চেয়ে অনেক ভাল কারণ আমি নিশ্চিত নই যে ব্রাউজার কীভাবে একটি পালানোর চরিত্র এবং বহু-লাইন চরিত্র হিসাবে ব্যাকস্ল্যাশ পরিচালনা করবে।
ম্যাট কে


e4x.js ভাল ভবিষ্যত-প্রমাণ সমাধান হবে
পল সুইট

139

আমি একাধিক রেখাযুক্ত স্ট্রিংয়ের খুব জিমি রিগড পদ্ধতিটি নিয়ে এসেছি। যেহেতু একটি ফাংশনটিকে স্ট্রিংয়ে রূপান্তরিত করা ফাংশনের অভ্যন্তরে কোনও মন্তব্যও ফেরত দেয় আপনি মন্তব্যগুলি আপনার স্ট্রিং হিসাবে একটি মাল্টিলিনযুক্ত মন্তব্য / ** / ব্যবহার করে ব্যবহার করতে পারেন। আপনাকে কেবল শেষগুলি ছাঁটাই করতে হবে এবং আপনার স্ট্রিং রয়েছে have

var myString = function(){/*
    This is some
    awesome multi-lined
    string using a comment 
    inside a function 
    returned as a string.
    Enjoy the jimmy rigged code.
*/}.toString().slice(14,-3)

alert(myString)

37
এটি একেবারে আতঙ্কজনক। আমি এটি পছন্দ করি (যদিও আপনাকে একটি রেইগেক্স ম্যাচটি করতে হতে পারে কারণ আমি নিশ্চিত না যে সাদা অংশের স্পেসিপটি কতটা সঠিক toString()
কেভিন কক্স

এই সমাধানটি ফায়ার ফক্সে কাজ করছে বলে মনে হচ্ছে না, সম্ভবত এটি ব্রাউজারের জন্য কোনও সুরক্ষা বৈশিষ্ট্য? সম্পাদনা: কিছুই নয়, এটি কেবল ফায়ারফক্স সংস্করণ 16 এর জন্য কাজ করে না
বিল সফটওয়্যার ইঞ্জিনিয়ার


3
এ কারণেই আমাদের সুন্দর জিনিস থাকতে পারে না।
ড্যানিলো এম। অলিভিরা

4
আপনি জাভাস্ক্রিপ্ট জমিতে কিছু অদ্ভুত জিনিস করতে পারেন। যদিও সমস্ত সততার সাথে, আপনার কখনই এটি ব্যবহার করা উচিত নয়।
লুক

88

আমি অবাক হয়েছি আমি এটি দেখতে পাইনি, কারণ এটি যেখানেই পরীক্ষা করা হয়েছে এটি সর্বত্র কাজ করে এবং উদাহরণস্বরূপ টেমপ্লেটগুলির জন্য খুব দরকারী:

<script type="bogus" id="multi">
    My
    multiline
    string
</script>
<script>
    alert($('#multi').html());
</script>

এইচটিএমএল আছে এমন পরিবেশ সম্পর্কে কেউ কি জানেন তবে এটি কার্যকর হয় না?


23
যে কোনও জায়গায় আপনি আপনার স্ট্রিংগুলি আলাদা এবং দূরবর্তী স্ক্রিপ্ট উপাদানগুলিতে রাখতে চান না।
লোডেভিজক

9
বৈধ আপত্তি! এটি নিখুঁত নয়। তবে টেমপ্লেটগুলির জন্য, এই বিচ্ছেদ কেবল ঠিক নয়, তবে সম্ভবত উত্সাহিতও করা হয়েছে।
পিটার ভি।

1
আমি 80/120 টির বেশি অক্ষরকে মাল্টলাইনে বিভক্ত করতে পছন্দ করি, আমি ভয় করি যে এটি কেবলমাত্র টেম্পলেটগুলির চেয়ে বেশি। আমি এখন 'লাইন 1' + 'লাইন 2' সিনট্যাক্স পছন্দ করি। এটিও দ্রুততম (যদিও এটি সত্যই এটি বড় আকারের গ্রন্থগুলির জন্য প্রতিদ্বন্দ্বী হতে পারে)। যদিও এটি একটি দুর্দান্ত কৌশল।
লোডেভিজক

27
প্রকৃতপক্ষে, এটি জাভাস্ক্রিপ্ট নয় এইচটিএমএল: - /
সিপিআইএল

5
যাইহোক, জাভাস্ক্রিপ্টে একাধিক স্ট্রিং প্রাপ্তির কাজটি এইভাবে করা যেতে পারে
ডেভি ফামেঙ্গি

52

আমি এটি একটি ডিভ আউটপুট করে, এটি লুকিয়ে রেখে এবং ডিআইডি আইডি কল করে যখন আমার প্রয়োজন হয় jQuery দ্বারা কল করেছি।

যেমন

<div id="UniqueID" style="display:none;">
     Strings
     On
     Multiple
     Lines
     Here
</div>

তারপরে যখন আমার স্ট্রিংটি পাওয়া দরকার তখন আমি কেবল নীচের jQuery ব্যবহার করি:

$('#UniqueID').html();

যা আমার পাঠ্যকে একাধিক লাইনে ফিরিয়ে দেয়। যদি ফোন করি

alert($('#UniqueID').html());

আমি পাই:

এখানে চিত্র বর্ণনা লিখুন


2
এর জন্য ধন্যবাদ! এটির একমাত্র উত্তর আমি খুঁজে পেয়েছি যা আমার সমস্যার সমাধান করে, যার মধ্যে অজানা স্ট্রিং জড়িত থাকে যাতে প্রাক-এনকোডিংয়ের কোনও সুযোগ না নিয়ে সরাসরি কোডে inোকানো হচ্ছে এমন একক এবং ডাবল উদ্ধৃতিগুলির সমন্বয় থাকতে পারে। (এটি একটি টেম্প্লেটিং ভাষা থেকে আসে যা জেএস তৈরি করে - এখনও একটি বিশ্বস্ত উত্স থেকে এবং কোনও ফর্ম জমা নয়, সুতরাং এটি সম্পূর্ণরূপে বিকৃত নয়)।
octern

এটিই কেবলমাত্র একটি পদ্ধতি যা জাভা স্ট্রিং থেকে মাল্টি-লাইন জাভাস্ক্রিপ্ট স্ট্রিং ভেরিয়েবল তৈরি করতে আমার পক্ষে কাজ করেছিল।
সূচনা_

4
স্ট্রিংটি এইচটিএমএল হলে কী হবে?
ড্যান ড্যাসক্লেস্কু

4
$ ('# ইউনিকআইডি') content বিষয়বস্তু ()
এমপিপ্লুজন

1
@ পেসারিয়ার যা কিছু আমি পড়েছি তা গুগল এবং অন্যান্য সাইট থেকে জানা গেছে যে আজকাল গুগল সূচী করে display:none সামগ্রী করে, সম্ভবত জাভাস্ক্রিপ্ট-স্টাইলযুক্ত ফ্রন্ট-এন্ডের জনপ্রিয়তার কারণে। (উদাহরণস্বরূপ, আড়াল / শো কার্যকারিতা সহ একটি FAQ পৃষ্ঠা)) আপনাকে অবশ্যই সতর্ক হওয়া দরকার কারণ গুগল বলেছে যে লুকানো সামগ্রীটি আপনার এসইও র‌্যাঙ্কিংকে কৃত্রিমভাবে উত্সর্গ করার জন্য ডিজাইন করা হয়েছে বলে মনে হচ্ছে তারা আপনাকে শাস্তি দিতে পারে।
গাভিন

31

এটি অর্জনের একাধিক উপায় রয়েছে

1. স্ল্যাশ কনটেন্টেশন

  var MultiLine=  '1\
    2\
    3\
    4\
    5\
    6\
    7\
    8\
    9';

2. নিয়মিত সংক্ষিপ্তকরণ

var MultiLine = '1'
+'2'
+'3'
+'4'
+'5';

3. অ্যারে সংমিশ্রণ যোগ দিন

var MultiLine = [
'1',
'2',
'3',
'4',
'5'
].join('');

পারফরম্যান্স অনুযায়ী, স্ল্যাশ কনটেনটেশন (প্রথম এক) সবচেয়ে দ্রুত।

পড়ুন এই পরীক্ষাটি ক্ষেত্রেকর্মক্ষমতা সম্পর্কিত আরও তথ্যের জন্য দেখুন Re

হালনাগাদ:

ES2015 এর সাহায্যে আমরা এর টেম্পলেট স্ট্রিং বৈশিষ্ট্যটির সুবিধা নিতে পারি। এটির সাথে, আমাদের কেবল মাল্টি লাইনের স্ট্রিং তৈরির জন্য ব্যাক-টিক ব্যবহার করা দরকার

উদাহরণ:

 `<h1>{{title}}</h1>
  <h2>{{hero.name}} details!</h2>
  <div><label>id: </label>{{hero.id}}</div>
  <div><label>name: </label>{{hero.name}}</div>
  `

11
আমি মনে করি এটি আপনি পাঁচ বছরের জন্য পৃষ্ঠাতে ইতিমধ্যে যা করেছেন কেবল তা পুনরায় সাজিয়েছেন তবে আরও পরিষ্কার উপায়ে।
এলোমেলো ইনসানো

লাইনের শুরুতে স্ল্যাশ কনটেনটেশনেও হোয়াইটস্পেস অন্তর্ভুক্ত হবে না?
f.khantsis

29

স্ক্রিপ্ট ট্যাগ ব্যবহার:

  • <script>...</script>আপনার মাল্টলাইন পাঠ্যকে headট্যাগে একটি ব্লক যুক্ত করুন ;
  • আপনার মাল্টলাইন পাঠ্যটি যেমন পান ... (পাঠ্য এনকোডিংয়ের জন্য নজর রাখুন: ইউটিএফ -8, এএসসিআইআই)

    <script>
    
        // pure javascript
        var text = document.getElementById("mySoapMessage").innerHTML ;
    
        // using JQuery's document ready for safety
        $(document).ready(function() {
    
            var text = $("#mySoapMessage").html(); 
    
        });
    
    </script>
    
    <script id="mySoapMessage" type="text/plain">
    
        <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="...">
           <soapenv:Header/>
           <soapenv:Body>
              <typ:getConvocadosElement>
                 ...
              </typ:getConvocadosElement>
           </soapenv:Body>
        </soapenv:Envelope>
    
        <!-- this comment will be present on your string -->
        //uh-oh, javascript comments...  SOAP request will fail 
    
    
    </script>

আমি মনে করি এই কৌশলটি পরিষ্কার এবং অনেকটা অপ্রয়োজনীয়। jsreender এটি ব্যবহার করে।
xdmoore

আমি এটি অভ্যন্তরীণ এইচটিএমএল এর অভ্যন্তরীণ পাঠের সাথে ব্যবহার করছি, তবে আমি কীভাবে নিশ্চিত করব যে সাদা স্থানগুলি সংরক্ষিত আছে?
ডেভিড নোলস

এছাড়াও আপনি এগুলি ব্যবহার করছেন এমন ক্ষেত্রে এজাক্স প্রশ্নগুলি। আপনি আপনার শিরোনাম পরিবর্তন করার চেষ্টা করতে পারেন xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");জেএস-এ মন্তব্য ভুল করে লেখার চেয়ে অন্য কোনও সমস্যা আমার মনে নেই। স্পেস যেখানে কোনও সমস্যা নেই।
jpfreire

24

আমি এই বাক্য গঠন এবং অন্তর্ভুক্তি পছন্দ:

string = 'my long string...\n'
       + 'continue here\n'
       + 'and here.';

(তবে বাস্তবে মাল্টলাইন স্ট্রিং হিসাবে বিবেচনা করা যায় না)


3
পূর্ববর্তী লাইনের শেষে '+' না রেখে আমি এটি ব্যবহার করি, এটি পরিষ্কার করার জন্য যে পরবর্তী বিবৃতিটি পরবর্তী লাইনে অব্যাহত রয়েছে। আপনার উপায়ে ইন্ডিটগুলি আরও সমানভাবে সজ্জিত করে।
শান 8

@ শীন আমি এটিও ব্যবহার করি এবং আমি এখনও প্রতিটি নতুন লাইনের শুরুতে '+' যুক্ত করতে পছন্দ করি এবং চূড়ান্ত ';' একটি নতুন লাইনে, cus আমি এটি আরও 'সঠিক' পেয়েছি।
এজলেস উপস্থিতি

7
শুরুতে + লাগিয়ে দেওয়া যখন ক্রমের প্রথম / শেষ লাইন হয় তখন অন্য লাইনগুলি সম্পাদনা না করেই সেই লাইনটি মন্তব্য করার সুযোগ দেয়।
মোলিয়াড

3
আমি সামনের দিকে + টি পছন্দ করি কেননা দৃশ্যত আমার পরেরটিটি একটি ধারাবাহিকতা তা জানতে লাইনটির শেষের দিকে স্ক্যান করতে হবে না।
ড্যানিয়েল সোকলোভস্কি

18

এই লাইব্রেরিটি এটি সুন্দর করে তোলে:

https://github.com/sindresorhus/multiline

আগে

var str = '' +
'<!doctype html>' +
'<html>' +
'   <body>' +
'       <h1>❤ unicorns</h1>' +
'   </body>' +
'</html>' +
'';

পরে

var str = multiline(function(){/*
<!doctype html>
<html>
    <body>
        <h1>❤ unicorns</h1>
    </body>
</html>
*/});

1
nodejsব্রাউজারে ব্যবহার করে এই সমর্থনটি অবশ্যই বেকারফুল হতে হবে।
হুয়েই টান

3
@ হুইটান ডক্স জানিয়েছে এটি ব্রাউজারেও কাজ করে। যা বোঝায় - এটি ঠিক Function.prototype.String()
মাইম্যাকচানা

হ্যাঁ তবে এটি বলেছে যে এটি ব্রাউজারে ঠিকঠাক কাজ করে, এটি মূলত নোড.জেএস ব্যবহার করার জন্য। আপনার নিজের ঝুঁকিতে." (কেবল বেকারফুল এক্সডি)
হুয়ে টান

@ হুইট্যানইপ আমি এই অংশটি পড়েছি। তবে ফাংশন.প্রোটোটাইপ.টো স্ট্রিং () বেশ স্থিতিশীল এবং সুপরিচিত।
মাইকমেকানা

1
আমার পক্ষে সেরা উত্তর কারণ এটি কমপক্ষে মাঝারি সমস্ত আবর্জনা ছাড়াই মাল্টলাইন অর্জন করে (শুরুতে আবর্জনা এবং শেষের দিকে আমি মোকাবিলা করতে পারি)।
ড্যামিয়েন গোল্ডিং

14

Downvoters : এই কোডটি কেবল তথ্যের জন্য সরবরাহ করা হয়।

এটি Fx 19 এবং ম্যাকের ক্রোম 24 এ পরীক্ষা করা হয়েছে

ডেমো

var new_comment; /*<<<EOF 
    <li class="photobooth-comment">
       <span class="username">
          <a href="#">You</a>:
       </span>
       <span class="comment-text">
          $text
       </span> 
       @<span class="comment-time">
          2d
       </span> ago
    </li>
EOF*/
// note the script tag here is hardcoded as the FIRST tag 
new_comment=document.currentScript.innerHTML.split("EOF")[1]; 
document.querySelector("ul").innerHTML=new_comment.replace('$text','This is a dynamically created text');
<ul></ul>


13
এটা ভয়াবহ। +1 টি। এবং আপনি getElement এর পরিবর্তে ডকুমেন্ট.কন্ট্রনস্ক্রিপ্ট ব্যবহার করতে পারেন ...
অরওলোফিল


1
jsfiddle- সংশোধন - আমার কনসোলে আমার অবশ্যই বিশ্বব্যাপী "আপনি" সংজ্ঞায়িত করতে হবে। এখন কাজ করে (ক্রোম / অক্স)। কোনও ভারে মন্তব্য যুক্ত করার চমৎকার জিনিসটি হ'ল আপনি কোনও ফাংশন প্রসঙ্গে নেই, jsfiddle-function-heredoc যদিও শ্রেণি পদ্ধতিগুলির জন্য ফাংশনটি জিনিস দুর্দান্ত হবে। এটি একটি প্রতিস্থাপন পাস করার চেয়ে ভাল হতে পারে - এটি: যেভাবেই হোক} যাইহোক যাইহোক সীমাতে পাগল কিছু ঠেলে মজা :)
অরওলোফিল

1
ঘৃণাকারী দের ভুলে যাও. এটিই সঠিক উত্তর বার ES6। অন্য সমস্ত উত্তরগুলির জন্য সংক্ষিপ্তকরণ, কোনও প্রকারের গণনা বা পালানো দরকার। এটি আসলে বেশ দুর্দান্ত এবং আমি শখ হিসাবে কাজ করছি এমন একটি খেলায় ডকুমেন্টেশন যুক্ত করার উপায় হিসাবে এটি ব্যবহার করতে যাচ্ছি। যতক্ষণ না এই কৌশলটি কোনও বাগের জন্য আহ্বান করতে পারে এমন কোনও কিছুর জন্য ব্যবহার করা হয় না (আমি দেখতে পাচ্ছি যে কেউ কীভাবে "সেমিকোলন, ডার্পে চলে যাবে। পরবর্তী লাইনে মন্তব্যটি দেওয়া যাক" এবং তারপরে এটি আপনার কোডটি ভেঙে দেয়)) তবে, সত্যিই আমার শখের খেলায় এটি একটি বড় চুক্তি? না, এবং আমি দরকারী কিছু জন্য দুর্দান্ত কৌশল ব্যবহার করতে পারি। দুর্দান্ত উত্তর।
টমাস ডিগানান

2
উত্পাদনের কোডে এই কৌশলটি ব্যবহার করার জন্য আমি এতটা সাহসী হয়ে উঠতে পারি নি, তবে যেখানে আমি এটি ব্যবহার করি সেখানে ইউনিট টেস্টিং হয়, যেখানে প্রায়শই কোনও কাঠামোর মান একটি (বেশ দীর্ঘ) স্ট্রিং হিসাবে ফেলে দেওয়া এবং এটির সাথে তুলনা করা সবচেয়ে সহজ এটা 'হওয়া উচিত'
বেন ম্যাকআইন্টির

10

সংক্ষেপে, আমি এখানে ব্যবহারকারী জাভাস্ক্রিপ্ট প্রোগ্রামিং (অপেরা ১১.০১) তালিকাভুক্ত 2 টি পদ্ধতির চেষ্টা করেছি:

সুতরাং আমি অপেরা ব্যবহারকারী জেএস ব্যবহারকারীদের জন্য কাজের পদ্ধতির প্রস্তাব দিই। লেখক যা বলছিলেন তার বিপরীতে:

এটি ফায়ারফক্স বা অপেরাতে কাজ করে না; কেবলমাত্র আইই, ক্রোম এবং সাফারি।

এটি অপেরা ১১-এ কাজ করে user কমপক্ষে ব্যবহারকারী জেএস স্ক্রিপ্টগুলিতে। খুব খারাপ আমি স্বতন্ত্র উত্তরের বিষয়ে মন্তব্য করতে বা উত্তরকে উচ্চারণ করতে পারি না, আমি তা অবিলম্বে এটি করব। যদি সম্ভব হয় তবে উচ্চতর অধিকার সহ কেউ আমার জন্য এটি করুন।


এটি আমার প্রথম আসল মন্তব্য। 2 দিন আগে আমি upvote সুবিধা পেয়েছি তাই আমি উপরে উল্লিখিত একটি উত্তর অবিলম্বে upvated করেছি। যে কেউ আমার অসমর্থিত সাহায্যের প্রচেষ্টা সফল করেছেন তাকে ধন্যবাদ জানাই।
টাইলার

প্রত্যেককে ধন্যবাদ যারা প্রকৃতপক্ষে এই উত্তরটিকে অগ্রাহ্য করেছে: আমার এখন সাধারণ মন্তব্য পোস্ট করার জন্য যথেষ্ট সুযোগ-সুবিধা রয়েছে! তাই আবার ধন্যবাদ।
টাইলার

10

Https://stackoverflow.com/a/15558082/80404 এ আমার এক্সটেনশন । এটি /*! any multiline comment */প্রতীক যেখানে একটি ফর্ম মন্তব্য আশা ! মিনিফিকেশন দ্বারা অপসারণ রোধ করতে ব্যবহৃত হয় (কমপক্ষে YUI সংক্ষেপক জন্য)

Function.prototype.extractComment = function() {
    var startComment = "/*!";
    var endComment = "*/";
    var str = this.toString();

    var start = str.indexOf(startComment);
    var end = str.lastIndexOf(endComment);

    return str.slice(start + startComment.length, -(str.length - end));
};

উদাহরণ:

var tmpl = function() { /*!
 <div class="navbar-collapse collapse">
    <ul class="nav navbar-nav">
    </ul>
 </div>
*/}.extractComment();

9

2015-এর জন্য আপডেট হয়েছে : এটি এখন ছয় বছর পরে: বেশিরভাগ লোকেরা মডিউল লোডার ব্যবহার করেন এবং প্রধান মডিউল সিস্টেমগুলির প্রত্যেকটিতে টেমপ্লেট লোড করার উপায় রয়েছে। এটি ইনলাইন নয়, তবে সবচেয়ে সাধারণ ধরণের মাল্টলাইন স্ট্রিংগুলি টেম্পলেটগুলি হয় এবং টেমপ্লেটগুলি সাধারণত জেএসের বাইরে রাখা উচিত any

প্রয়োজনীয়.js: 'পাঠ্য প্রয়োজন'।

ব্যবহার require.js 'টেক্সট' প্লাগ-ইন , একটি একাধিক লাইন টেমপ্লেট সঙ্গে template.html

var template = require('text!template.html')

এনপিএম / ব্রাউজারিফাই: 'ব্রাফস' মডিউল

ব্রাউজারফি পাঠ্য ফাইলগুলি লোড করতে একটি 'ব্রাফস' মডিউল ব্যবহার করে। এটি আসলে আপনার বান্ডিল এইচটিএমএলে আপনার টেম্পলেটটি তৈরি করবে।

var fs = require("fs");
var template = fs.readFileSync(template.html', 'utf8');

সহজ।


9

আপনি পলান নতুন লাইন ব্যবহার করতে ইচ্ছুক হন, তাহলে তারা ব্যবহার করা যেতে পারে চমত্কারভাবেএটা একটা পৃষ্ঠা সীমানা সহ একটি নথি মত দেখায়

এখানে চিত্র বর্ণনা লিখুন


2
এটি কি বহিরাগত ফাঁকা জায়গা যোগ করবে না?
টমবায়ার

1
@ টমবায়ার হ্যাঁ, ভাল পর্যবেক্ষণ। এটি কেবল স্ট্রিংগুলির পক্ষে ভাল যা আপনি সাদা স্থানের জন্য যত্নবান হন না, যেমন এইচটিএমএল।
এসইও


8

এটি IE, সাফারি, ক্রোম এবং ফায়ারফক্সে কাজ করে:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<div class="crazy_idea" thorn_in_my_side='<table  border="0">
                        <tr>
                            <td ><span class="mlayouttablecellsdynamic">PACKAGE price $65.00</span></td>
                        </tr>
                    </table>'></div>
<script type="text/javascript">
    alert($(".crazy_idea").attr("thorn_in_my_side"));
</script>

6
এটা আমার মনে হয়. আপনি কি এটি বৈধ মনে করেন? আপনি কি মনে করেন না যে এটি প্রদর্শন সমস্যার কারণ হতে পারে?
Sk8erPeter

5
ডাউনভোটস কেন? এটি একটি সৃজনশীল উত্তর, খুব ব্যবহারিক না হলে!
dotancohen

2
না এইটা না. এক বরং টেমপ্লেট ব্যবহার করা উচিত: $ .tmpl () ( api.jquery.com/tmpl ), অথবা EJS ( embeddedjs.com/getting_started.html ), ইত্যাদি downvotes এর একটি কারণ এটির একটি বৈধ কোড এবং ব্যবহার থেকে সত্যিই দূরে যে এটি বিশাল ডিসপ্লে সমস্যা তৈরি করতে পারে।
Sk8erPeter

আমি আশা করি
বাস্তবে

7

আপনি টাইপস্ক্রিপ্ট (জাভাস্ক্রিপ্ট সুপারসেট) ব্যবহার করতে পারেন , এটি মাল্টলাইন স্ট্রিং সমর্থন করে এবং ওভারহেড ছাড়াই খাঁটি জাভাস্ক্রিপ্টে স্থানান্তরিত করে:

var templates = {
    myString: `this is
a multiline
string` 
}

alert(templates.myString);

আপনি যদি সরল জাভাস্ক্রিপ্ট দিয়ে এটি সম্পাদন করতে চান:

var templates = 
{
 myString: function(){/*
    This is some
    awesome multi-lined
    string using a comment 
    inside a function 
    returned as a string.
    Enjoy the jimmy rigged code.
*/}.toString().slice(14,-3)

}
alert(templates.myString)

নোট করুন যে আইপ্যাড / সাফারি সমর্থন করে না 'functionName.toString()'

আপনার যদি প্রচুর লিগ্যাসি কোড থাকে তবে আপনি টাইপস্ক্রিপ্টে (ক্লিনআপের উদ্দেশ্যে) প্লেইন জাভাস্ক্রিপ্ট ভেরিয়েন্টটিও ব্যবহার করতে পারেন:

interface externTemplates
{
    myString:string;
}

declare var templates:externTemplates;

alert(templates.myString)

এবং আপনি প্লেইন জাভাস্ক্রিপ্ট ভেরিয়েন্টের মাল্টলাইন-স্ট্রিং অবজেক্টটি ব্যবহার করতে পারেন, যেখানে আপনি টেমপ্লেটগুলিকে অন্য কোনও ফাইলে রেখেছেন (যা আপনি বান্ডলে মার্জ করতে পারেন)।

আপনি http://www.typescriptlang.org/Playground এ টাইপস্ক্রিপ্ট চেষ্টা করতে পারেন


আইপ্যাড / সাফারি সীমাবদ্ধতার কোনও নথি? এমডিএন মনে হচ্ছে এটি সব ভাল - ডেভেলপার.মোজিলা.আর.ইন.ইউএস
ডকস / ওয়েব

@ ক্যাম্পবেলেন: কো-ওয়ার্কার আমাকে এই বলেছিলেন (তিনি কোডটি ব্যবহার করেছিলেন)। এটি নিজে পরীক্ষা করা হয়নি। আইপ্যাড / সাফারি সংস্করণেও নির্ভর করতে পারে - তাই সম্ভবত নির্ভর করে।
স্টিফান স্টেইগার

6

এটি করার ES6 উপায়টি হ'ল টেমপ্লেট লিটারাল ব্যবহার করে:

const str = `This 

is 

a

multiline text`; 

console.log(str);

এখানে আরও রেফারেন্স


এই উত্তরটি কেবল ছোট, অসম্পূর্ণ এবং খারাপ ফর্ম্যাটেড নয়, তবে পূর্ববর্তী উত্তরগুলিতে একেবারে কিছু যোগ করে না। এটি পতাকাঙ্কিত করা এবং মুছে ফেলার আশা করছি।
ভিক্টর শ্রদ্ধার

5

ES6 আপনাকে একাধিক লাইনে স্ট্রিং নির্দিষ্ট করতে ব্যাকটিক ব্যবহার করতে দেয়। এটিকে একটি টেম্পলেট লিটারাল বলা হয়। এটার মত:

var multilineString = `One line of text
    second line of text
    third line of text
    fourth line of text`;

ব্যাকটিকটি ব্যবহার করে নোডজেএসে কাজ করে এবং এটি ক্রোম, ফায়ারফক্স, এজ, সাফারি এবং অপেরা দ্বারা সমর্থিত।

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals


4

জাভাস্ক্রিপগুলিতে মাল্টলাইন স্ট্রিংগুলি তৈরি করার সহজ উপায় ব্যাকটিক্স ব্যবহার (``)। এটি আপনাকে একাধিক স্ট্রিং তৈরি করতে সহায়তা করে যার সাহায্যে আপনি ভেরিয়েবল সন্নিবেশ করতে পারেন${variableName}

উদাহরণ:

let name = 'Willem'; 
let age = 26;

let multilineString = `
my name is: ${name}

my age is: ${age}
`;

console.log(multilineString);

সামঞ্জস্যতা:

  • এটি পরিচয় করিয়ে দেওয়া হয়েছিল ES6 // এes2015
  • এটি এখন স্থানীয়ভাবে সমস্ত বড় ব্রাউজার বিক্রেতাদের দ্বারা সমর্থিত (ইন্টারনেট এক্সপ্লোরার ব্যতীত)

মোজিলা ডক্সে এখানে যথাযথ সামঞ্জস্যতা পরীক্ষা করুন


এটি কি এখন সমস্ত সাম্প্রতিক ব্রাউজারগুলির সাথে সামঞ্জস্যপূর্ণ? বা এমন কিছু ব্রাউজার রয়েছে যা এখনও এই সিনট্যাক্সটিকে সমর্থন করে না?
cmpreshn

আমার চূড়ান্ত দেরী মন্তব্যের জন্য দুঃখিত, উত্তরের সাথে সামঞ্জস্যের তথ্য যুক্ত করা;)
উইলিয়াম ভ্যান ডের ভেন

3

অ্যারে-ভিত্তিক আমার সংস্করণটি স্ট্রিং কনকটের জন্য যোগ দিন:

var c = []; //c stands for content
c.push("<div id='thisDiv' style='left:10px'></div>");
c.push("<div onclick='showDo(\'something\');'></div>");
$(body).append(c.join('\n'));

এটি আমার পক্ষে ভাল কাজ করেছে, বিশেষত আমি প্রায়শই এইভাবে নির্মিত এইচটিএমএলটিতে মান সন্নিবেশ করায়। তবে এর প্রচুর সীমাবদ্ধতা রয়েছে। ইন্ডেন্টেশন ভাল হবে। নেস্টেড কোটেশন চিহ্নগুলির সাথে ডিল না করা সত্যিই দুর্দান্ত হবে এবং এটির বিশাল অংশ আমাকে বিরক্ত করে।

.Push () অ্যারে যোগ করার জন্য কি অনেক বেশি সময় নিচ্ছে? এই সম্পর্কিত উত্তর দেখুন:

( জাভাস্ক্রিপ্ট বিকাশকারীরা অ্যারে.পশ () ব্যবহার না করার কোনও কারণ আছে কি? )

এই (বিরোধী) পরীক্ষার রানগুলি দেখার পরে দেখে মনে হচ্ছে .push () স্ট্রিং অ্যারেগুলির জন্য ঠিক আছে যা সম্ভবত 100 টি আইটেমের বেশি বৃদ্ধি পাবে না - আমি এটিকে বৃহত্তর অ্যারেগুলির জন্য সূচকযুক্ত অ্যাডের পক্ষে এড়াতে চাই।


3

আপনি +=আপনার স্ট্রিংটি একত্রীকরণ করতে ব্যবহার করতে পারেন , মনে হচ্ছে এমন কোনও উত্তর নেই, যা পাঠযোগ্য হবে এবং ঝরঝরেও ... এরকম কিছু

var hello = 'hello' +
            'world' +
            'blah';

হিসাবে লেখা যেতে পারে

var hello = 'hello';
    hello += ' world';
    hello += ' blah';

console.log(hello);

3

আরও মনে রাখবেন যে, প্রতিটি লাইনের শেষে ফরোয়ার্ড ব্যাকস্ল্যাশ ব্যবহার করে একাধিক লাইনের উপর স্ট্রিং প্রসারিত করার সময়, কোনও অতিরিক্ত অক্ষর (বেশিরভাগ স্পেস, ট্যাব এবং মন্তব্য ভুলক্রমে যোগ করা হয়) অপ্রত্যাশিত অক্ষর ত্রুটির কারণ ঘটবে, যা খুঁজে পেতে আমি এক ঘন্টা সময় নিয়েছিলাম আউট

var string = "line1\  // comment, space or tabs here raise error
line2";

3

ইন্টারনেটের ভালবাসার জন্য দয়া করে স্ট্রিং কনটেনটেশন ব্যবহার করুন এবং এর জন্য ES6 সমাধানগুলি ব্যবহার না করা পছন্দ করুন। ES6 পুরো বোর্ড জুড়ে সমর্থিত নয়, অনেকটা CSS3 এবং নির্দিষ্ট ব্রাউজারগুলির CSS3 আন্দোলনের সাথে খাপ খাইয়ে নিতে ধীর হয়ে আসছে। সাধারণ ওল 'জাভাস্ক্রিপ্ট ব্যবহার করুন, আপনার শেষ ব্যবহারকারীরা আপনাকে ধন্যবাদ দেবে।

উদাহরণ:

var str = "This world is neither flat nor round. "+ "Once was lost will be found";


3
আমি আপনার বক্তব্যের সাথে একমত হওয়ার
পরেও

2

আপনাকে কনকনেটেশন অপারেটর '+' ব্যবহার করতে হবে।

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <p id="demo"></p>
    <script>
        var str = "This "
                + "\n<br>is "
                + "\n<br>multiline "
                + "\n<br>string.";
        document.getElementById("demo").innerHTML = str;
     </script>
</body>
</html>

\nআপনার উত্স কোডটি ব্যবহার করে দেখতে দেখতে দেখতে এমনটি হবে -

এই 
 <br> হয়
 <br> একাধিক লাইন
 <br> পংক্তি।

<br>আপনার ব্রাউজার ব্যবহার করে আউটপুট এর মত দেখতে পাবেন -

এই
হয়
একাধিক লাইন
স্ট্রিং।

1

আমি মনে করি এই কাজটি IE, ক্রোম, ফায়ারফক্স, সাফারি, অপেরা - এ কাজ করা উচিত

JQuery ব্যবহার :

<xmp id="unique_id" style="display:none;">
  Some plain text
  Both type of quotes :  " ' " And  ' " '
  JS Code : alert("Hello World");
  HTML Code : <div class="some_class"></div>
</xmp>
<script>
   alert($('#unique_id').html());
</script>

খাঁটি জাভাস্ক্রিপ্ট ব্যবহার:

<xmp id="unique_id" style="display:none;">
  Some plain text
  Both type of quotes :  " ' " And  ' " '
  JS Code : alert("Hello World");
  HTML Code : <div class="some_class"></div>
</xmp>
<script>
   alert(document.getElementById('unique_id').innerHTML);
</script>

চিয়ার্স !!


<xmp>তাই অবচয় করা হয়। এটি HTML এ অনুমোদিত হতে পারে তবে কোনও লেখক এটি ব্যবহার করবেন না be স্ট্যাকওভারফ্লো.com
প্রশ্নগুলি

@ বেরগি, আপনি ঠিক বলেছেন .. এবং <pre>;পালিয়ে আসা লোকদের সাথে ব্যবহার করা আমার সমাধানে সাহায্য করবে না .. আমি আজ একই ধরণের বিষয় নিয়ে এসে কাজটি বের করার চেষ্টা করছি .. তবে আমার ক্ষেত্রে, আমি এই সমস্যাটি সমাধান করার একটি খুব সহজ উপায় পেয়েছি <xmp> বা অন্য কোনও ট্যাগের পরিবর্তে এইচটিএমএল মন্তব্যে আউটপুট লাগানো। হাঃ হাঃ হাঃ. আমি জানি এটি করার কোনও স্ট্যান্ডার্ড উপায় নয় তবে আমি আগামীকাল সকালে এই সমস্যাটি নিয়ে কাজ করব .. চিয়ার্স !!
আদিত্য হাজারে

দুর্ভাগ্যক্রমে এমনকি style="display:none"ক্রোম <img>উদাহরণস্বরূপ ব্লকটিতে উল্লিখিত কোনও চিত্র লোড করার চেষ্টা করে ।
জেসি গ্লিক

0

কেবল অজ্ঞাতনামা উত্তরটি চেষ্টা করে দেখেছি এখানে একটি সামান্য কৌশল আছে, ব্যাকস্ল্যাশ পরে কোনও জায়গা থাকলে এটি কাজ করে না \
সুতরাং নিম্নলিখিত সমাধানটি কাজ করে না -

var x = { test:'<?xml version="1.0"?>\ <-- One space here
            <?mso-application progid="Excel.Sheet"?>' 
};

তবে স্থান সরিয়ে গেলে এটি কাজ করে -

var x = { test:'<?xml version="1.0"?>\<-- No space here now
          <?mso-application progid="Excel.Sheet"?>' 
};

alert(x.test);​

আশা করি এটা সাহায্য করবে !!


7
স্পষ্টতই যদি আপনার ব্যাকস্ল্যাশ পরে একটি স্থান থাকে, ব্যাকস্ল্যাশ স্থানটি পলায়ন করে। এটি স্থান নয়, লাইন ব্রেক থেকে রক্ষা পাওয়ার কথা।
সেজানুস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.