আমি জাভাস্ক্রিপ্টে একাধিক লাইন কোডের মধ্যে একটি স্ট্রিং কীভাবে ভাঙ্গবো?


198

জাভা স্ক্রিপ্টে এমন কোনও চরিত্র আছে যাতে কোডের একটি লাইন ভেঙে যায় যাতে এটি একটি নতুন লাইনে থাকা সত্ত্বেও ধারাবাহিকভাবে পড়া যায়?

কিছুটা এইরকম....

1. সতর্কতা ("দয়া করে ফাইল নির্বাচন করুন)"   
2. delete মুছতে ");

উত্তর:


272

আপনার উদাহরণে, আপনি স্ট্রিংটিকে দুটি টুকরো টুকরো করতে পারেন:

alert ( "Please Select file"
 + " to delete");

বা, এটি যখন আপনার স্ট্রিংয়ের মতো একটি স্ট্রিং থাকে, আপনি @ গম্বোর পরামর্শ অনুসারে ব্যাকস্ল্যাশ ব্যবহার করতে পারেন :

alert ( "Please Select file\
 to delete");

নোট করুন যে এই ব্যাকস্ল্যাশ পদ্ধতির প্রয়োজনীয়ভাবে পছন্দ করা হয় না এবং সম্ভবত সর্বজনীনভাবে সমর্থিত হয় না (এটি সম্পর্কে হার্ড ডেটা খুঁজতে আমার সমস্যা হয়েছিল)। এটা না যে ECMA 5.1 বৈশিষ্ট

অন্যান্য কোড (কোট নয়) এর সাথে কাজ করার সময়, লাইন ব্রেকগুলি উপেক্ষা করা হয় এবং পুরোপুরি গ্রহণযোগ্য। উদাহরণ স্বরূপ:

if(SuperLongConditionWhyIsThisSoLong
  && SuperLongConditionOnAnotherLine
  && SuperLongConditionOnThirdLineSheesh)
{
    // launch_missiles();
}

আপনি যদি একটি বিবৃতি বিচ্ছেদ করতে পারেন?
টিটিটি

17
তবে স্বয়ংক্রিয় সেমিকোলন সন্নিবেশকরণ প্রক্রিয়া থেকে সাবধান থাকুন: ফাংশন শেষে একটি সারিতে এবং পরের দিকে একটি "স্ট্রিং" ফিরতে চেষ্টা করুন এবং ফলস্বরূপ আপনি অপরিবর্তিত হয়ে উঠুন।
কিছু

এই মান-সম্মতি হয়? সমস্ত বাধ্যতামূলক ব্রাউজারগুলি কি এটি সমর্থন করবে? না পুরোনো ব্রাউজার আজ এটি সমর্থন করেন? এই গুরুত্বপূর্ণ প্রশ্নগুলির কোনটিই আচ্ছাদন করা হয়নি, -১।
ulidtko

3
ঠিক আছে ... আপনি যদি ইতিমধ্যে জিজ্ঞাসা না করা একগুচ্ছ নতুন প্রশ্ন জিজ্ঞাসা করতে থাকেন তবে তাদের উত্তর দেওয়ার জন্য আমাদের একটি সুযোগ দিতে হবে। আমি আমার উত্তরটি একটি অসন্তুষ্ট অনুমান দিয়ে আপডেট করেছি।
মাইকেল হরেন

2
ব্যাকস্ল্যাশ থেকে সাবধান থাকুন। এটি কোনও শূন্যস্থান না পাওয়া পর্যন্ত এটি সমস্ত ব্লাঙ্ক খাবে। উদাহরণটি "সতর্কতা" করবে: দয়া করে ফাইলটি মুছুন নির্বাচন করুন। আপনি যদি ফাইল এবং এর মধ্যে সাদা স্থান চান তবে আপনার এটি ডি ব্যাকস্ল্যাশের আগে রাখা উচিত put
jgomo3

41

লাইনের শেষে ব্যাকস্ল্যাশ রাখুন:

alert("Please Select file\
 to delete");

সম্পাদনা     আমাকে নোট করতে হবে যে এটি ECMAScript স্ট্রিংগুলির অংশ নয় কারণ লাইন সমাপ্তি অক্ষরগুলি একেবারেই অনুমোদিত নয়:

একটি ' লাইনটার্মিনেটর ' অক্ষর একটি স্ট্রিং আক্ষরিক উপস্থিত হতে পারে না, এমনকি ব্যাকস্ল্যাশ এর আগে থাকলেও \। একটি লাইন টার্মিনেটর চরিত্রটিকে স্ট্রিং আক্ষরিকের স্ট্রিং মানের অংশ হিসাবে চিহ্নিত করার সঠিক উপায়টি হ'ল একটি এস্কেপ সিকোয়েন্স ব্যবহার করা \nবা যেমন \u000A

সুতরাং স্ট্রিং কনটেনটেশন ব্যবহার করা ভাল পছন্দ।


2015-01-05 আপডেট করুন     ECMAScript5 এ স্ট্রিং লিটারেলগুলি উল্লিখিত বাক্য গঠনটির অনুমতি দেয়:

একটি লাইন টার্মিনেটর অক্ষর একটি স্ট্রিং আক্ষরিক উপস্থিত হতে পারে না, খালি অক্ষরের ক্রম উত্পাদন করার জন্য লাইনকন্টিনিয়েশনের অংশ হিসাবে । একটি লাইন টার্মিনেটর চরিত্রটিকে স্ট্রিং আক্ষরিকের স্ট্রিং মানের অংশ হওয়ার সঠিক উপায় হ'ল একটি এস্কেপ সিকোয়েন্স ব্যবহার করা \nবা যেমন \u000A


1
ECMAScript5 এটিকে মঞ্জুরি দেয়: " একটি লাইন টার্মিনেটর অক্ষর একটি স্ট্রিং লিটারেলের সাথে\n\u000A উপস্থিত হতে পারে না, খালি অক্ষরের অনুক্রম তৈরির জন্য লাইনকন্টিনিয়েশনের অংশ হিসাবে । যেমন একটি পালাবার ক্রম ব্যবহার করতে বা "
Oriol

1
@ ওরিওল নোটের জন্য ধন্যবাদ, সেই অনুযায়ী উত্তর আপডেট করেছেন!
গম্বো

1
উইন্ডোজে ফাইলটি তৈরি করা থাকলে কি এই সমস্যাযুক্ত? অন্য কথায় লাইনগুলি এর \r\nপরিবর্তে শেষ করা হবে \n?
অ্যাডাম প্লোচার

31

ECMAScript 6 টি টেম্পলেট স্ট্রিংগুলি উপস্থাপন করেছে :

টেমপ্লেট স্ট্রিংগুলি এম্বেডড এক্সপ্রেশনগুলিকে মঞ্জুরি দেয় স্ট্রিং লিটারেল। আপনি তাদের সাথে মাল্টি-লাইন স্ট্রিং এবং স্ট্রিং ইন্টারপোলেশন বৈশিষ্ট্যগুলি ব্যবহার করতে পারেন।

উদাহরণ স্বরূপ,

alert(`Please Select file   
to delete`);

সতর্ক করবে

Please Select file   
to delete

1
চমৎকার. কীবোর্ডে এগুলি To পেতে দুটি বার SHIFT + press টিপুন। একটি জার্মান কীবোর্ডে সেই কীটি ব্যাকস্পেস কীটির কাছে is
নাদু

@ নাডু এটি একটি কীবোর্ডের উপর নির্ভর করে। খনি একটি `চাবি আছে। এটি কোনও পরিবর্তনকারী হিসাবে এটি সরাসরি লেখা হয় না। এ কারণেই সম্ভবত আপনি ভেবেছিলেন যে আপনি এটি দুবার চাপুন, তবে এটি তাদের দুটি লিখবে। কেবল একটি লিখতে স্পেসবার টিপুন।
ওরিওল

অবিশ্বাস্য যে অভিনব হ্যাক ছাড়া মাল্টলাইন স্ট্রিংগুলিকে অনুমতি দিতে এত সময় লেগেছে ... প্রশ্ন হল: লাইন বিভাজক - হার্ডকডযুক্ত চর (গুলি) বা নথির লাইন ব্রেক ব্রেক (গুলি) হিসাবে কী ব্যবহৃত হবে?
StanE

1
আপনি যখন * .js ফাইলের ম্যাগনিফিকেশন করতে চান তখন ক্ষেত্রে `with এর সাথে সমস্যা হয়।
রাসক্লানিকভ

1
বিবেচনা করুন, যে এখনও মার্চ 2018 সালে বিশ্বব্যাপী ব্যবহৃত ব্রাউজার শুধুমাত্র 89% caniuse.com অনুযায়ী টেমপ্লেট স্ট্রিং সমর্থন caniuse.com/#feat=template-literals
FFirmenich


4

মজার বিষয়। চেষ্টা করা হয়েছে:

alert("Some \
    string \
    wrapped \
    across \
    mutliples lines.")

এবং এটি কাজ করে। যাইহোক, দুর্ঘটনায় !, চূড়ান্ত ব্যাকস্ল্যাশের পরে একটি স্থানের অক্ষর ছিল (অন্য সমস্ত ব্যাকস্ল্যাশগুলি লাইনের শেষে ছিল)। এবং এটি জাভাস্ক্রিপ্টে একটি ত্রুটি ঘটায়! যদিও এই স্থানটি সরিয়ে ফেলা ত্রুটিটি স্থির করে।

এটি কর্ডোভা ব্যবহার করে অ্যান্ড্রয়েডের জন্য এডিটিতে রয়েছে।


1
এই সমস্যার সাথে লড়াই করার জন্য আমার দিনের বেশিরভাগ সময় ব্যয় করেছে এবং আমি এটিও আবিষ্কার করেছি, আপনাকে ধন্যবাদ, যে কোনও স্ল্যাশের পরে কোনও স্পেস অক্ষর আমার আয়নিক অ্যাপ্লিকেশনটি সংকলন না করার কারণ হয়ে দাঁড়িয়েছিল। ধন্যবাদ!
রেকর্ডবয়

1
বিশ্বাস করতে পারছেন না কেউ মন্তব্য করেছেন যে এতে স্ট্রিংয়ের অংশ হিসাবে Some\n<4 spaces>string\n<4 spaces>wrapped\n<4 spaces>across\n<4 spaces>multiple lines.
কোডটিতে


0

আপনি একটি দীর্ঘ স্ট্রিং ধ্রুবককে লজিকাল খণ্ডগুলিতে ভেঙে এড়াতে পারেন them তারপরে joinএকটি সীমানা হিসাবে খালি স্ট্রিং দিয়ে একটি করুন।

var stringArray = [
  '1. This is first part....',
  '2. This is second part.....',
  '3. Finishing here.'
];

var bigLongString = stringArray.join('');
console.log(bigLongString);

আউটপুট হবে:

  1. এটি প্রথম অংশ .... 2। এটি দ্বিতীয় অংশ ..... 3। এখানে শেষ হচ্ছে।

এখানে সামান্য পারফরম্যান্স হিট হয়েছে তবে আপনি কোডের পঠনযোগ্যতা এবং রক্ষণাবেক্ষণযোগ্যতা অর্জন করতে পারেন।


0

ভিএসকোড ব্যবহারকারীদের জন্য এখানে একটি ভাল সমাধান , যদি কোনও স্ট্রিং একাধিক লাইনে বিভক্ত হয়ে সমস্যা সৃষ্টি করে (আমি যখন একটি দীর্ঘ জেডাব্লুটি টোকেন পরীক্ষা করতে হয়েছিল তখন আমি এর মুখোমুখি হয়েছিলাম, এবং কোনওভাবে টেমপ্লেট লিটারাল ব্যবহার করে কৌতুকটি করেনি))


-3

আমি উপরোক্ত বেশ কয়েকটি পরামর্শ চেষ্টা করেছিলাম কিন্তু ক্রোম কোড পরিদর্শকের মধ্যে একটি অবৈধ চরিত্রের সতর্কতা পেয়েছি। নিম্নলিখিতগুলি আমার জন্য কাজ করেছে (কেবলমাত্র ক্রোমে পরীক্ষিত!)

alert('stuff on line 1\\nstuff on line 2);

এর মত বেরিয়ে আসে ...

stuff on line 1
stuff on line 2

ডাবল ব্যাকস্ল্যাশ নোট করুন !! ... এটি গুরুত্বপূর্ণ বলে মনে হচ্ছে!


-5

কোডে কোনও ম্যানুয়াল ব্রেকের দরকার নেই। আপনি যেখানে ব্রেক করতে চান সেখানে কেবল \ n যুক্ত করুন।

alert ("Please Select file \n to delete");

এটি সতর্কতাটির মতো দেখায়

Please select file 
to delete.

নিচে ভোটার, আপনি দয়া করে নিম্নগতির কারণ বলতে পারেন? এই সমাধানগুলি সর্বদা আমার জন্য কাজ করে।
নরেন্দ্র

27
আমি জানি না কে ভোট দিয়েছে বা কেন; তবে কেবল একটি অনুমান: আউটপুটটিতে একটি লাইন বিরতি কীভাবে সন্নিবেশ করা যায় তার চেয়ে বিকল্পটি কোডের একাধিক লাইন জুড়ে কীভাবে একটি পাঠ্য আক্ষরিক প্রসারিত করতে হয় তা জানতে চেয়েছিল।
জেরেফেথ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.