আমার কাছে রুবিতে নিম্নলিখিত কোড রয়েছে। আমি এই কোডটি জাভাস্ক্রিপ্টে রূপান্তর করতে চাই। জেএস এর সমমানের কোডটি কী?
text = <<"HERE"
This
Is
A
Multiline
String
HERE
আমার কাছে রুবিতে নিম্নলিখিত কোড রয়েছে। আমি এই কোডটি জাভাস্ক্রিপ্টে রূপান্তর করতে চাই। জেএস এর সমমানের কোডটি কী?
text = <<"HERE"
This
Is
A
Multiline
String
HERE
উত্তর:
ইসমাস্ক্রিপ্ট ((ইএস)) একটি নতুন ধরণের আক্ষরিক অর্থাত্ টেম্পলেট আক্ষরিক পরিচয় করিয়ে দেয় । তাদের অনেকগুলি বৈশিষ্ট্য রয়েছে, অন্যের মধ্যে পরিবর্তনীয় অন্তরঙ্গকরণ রয়েছে, তবে সবচেয়ে গুরুত্বপূর্ণ বিষয় এই প্রশ্নের জন্য, তারা বহুবিধ হতে পারে।
একটি টেম্পলেট আক্ষরিক ব্যাকটিক্স দ্বারা সীমিত করা হয় :
var html = `
<div>
<span>Some HTML here</span>
</div>
`;
(দ্রষ্টব্য: আমি স্ট্রিংগুলিতে এইচটিএমএল ব্যবহার করার পক্ষে পরামর্শ দিচ্ছি না)
ব্রাউজার সমর্থন ঠিক আছে , তবে আপনি আরও সামঞ্জস্যপূর্ণ হতে ট্রান্সপোর্টার ব্যবহার করতে পারেন ।
জাভাস্ক্রিপ্টের এখানে একটি নথির সিনট্যাক্স নেই। আক্ষরিক নতুন লাইনটি এড়াতে পারবেন, তবে এটি নিকটে আসে:
"foo \
bar"
প্রথম উত্তরের হিসাবে, 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'
গুগলের জাভাস্ক্রিপ্ট স্টাইল গাইড নতুন লাইনের হাতছাড়া হওয়ার পরিবর্তে স্ট্রিং কনটেনটেশন ব্যবহার করার পরামর্শ দেয়:
এটা করো না:
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.';
\
notice \ instead এর পরিবর্তে কোনও লাইন শেষ করেন তবে এটি লক্ষ্য করা মুশকিল] এবং (৩) বেশিরভাগ স্ক্রিপ্ট ইঞ্জিনগুলি এটিকে সমর্থন করে তবে এটি ইসএমএসক্রিপ্টের অংশ নয় [অর্থাৎ কেন? নন-স্ট্যান্ডার্ড বৈশিষ্ট্যগুলি ব্যবহার করবেন?] মনে রাখবেন এটি একটি স্টাইল গাইড, যা কোড পড়া + বজায় রাখা + ডিবাগ করা সহজ করে: কেবল "এটি কাজ করে না" সঠিক।
প্যাটার্নটি 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 দ্রষ্টব্য: আপনার কোডটি ক্ষুদ্রতর / বিবেচনা করার পরে এটি হারিয়ে যাবে
আপনি পারেন বিশুদ্ধ জাভাস্ক্রিপ্ট মধ্যে একাধিক লাইন স্ট্রিং আছে।
এই পদ্ধতি ফাংশন ধারাবাহিকতাতে, যা উপর ভিত্তি করে তৈরি বাস্তবায়ন নির্ভর হতে সংজ্ঞায়িত । এটি সর্বাধিক ব্রাউজারগুলিতে কাজ করে (নীচে দেখুন), তবে ভবিষ্যতে এটি এখনও কাজ করবে এমন কোনও গ্যারান্টি নেই, সুতরাং এটির উপর নির্ভর করবেন না।
নিম্নলিখিত ফাংশন ব্যবহার করে:
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
*/});
পদ্ধতিটি নিম্নলিখিত ব্রাউজারগুলিতে সফলভাবে পরীক্ষা করা হয়েছে (উল্লেখ নেই = পরীক্ষিত নয়):
আপনার মিনিফায়ারের সাথে সতর্ক থাকুন। এটি মন্তব্য মুছে ফেলার ঝোঁক। YUI সংক্ষেপক জন্য , একটি মন্তব্য দিয়ে শুরু/*!
(যা আমি ব্যবহার করেছি তার মতো) দিয়ে সংরক্ষণ করা হবে।
আমি মনে করি আসল সমাধান হ'ল কফিস্ক্রিপ্ট ব্যবহার করা ।
ES6 আপডেট: আপনি মন্তব্য দিয়ে একটি ফাংশন তৈরি এবং মন্তব্যটিতে স্ট্রিং চালানোর পরিবর্তে ব্যাকটিক ব্যবহার করতে পারেন। রেজেক্স কেবল স্ট্রিপ স্পেসগুলিতে আপডেট করা দরকার। এটি করার জন্য আপনার কাছে স্ট্রিং প্রোটোটাইপ পদ্ধতিও থাকতে পারে:
let foo = `
bar loves cake
baz loves beer
beer loves people
`.removeIndentation()
এটা অনেক ঠান্ডা. কারও এটিকে লেখা উচিত .আরমিভ ইনডেন্টেশন স্ট্রিং পদ্ধতি ...;)
তুমি এটি করতে পারো...
var string = 'This is\n' +
'a multiline\n' +
'string';
আমি একাধিক রেখাযুক্ত স্ট্রিংয়ের খুব জিমি রিগড পদ্ধতিটি নিয়ে এসেছি। যেহেতু একটি ফাংশনটিকে স্ট্রিংয়ে রূপান্তরিত করা ফাংশনের অভ্যন্তরে কোনও মন্তব্যও ফেরত দেয় আপনি মন্তব্যগুলি আপনার স্ট্রিং হিসাবে একটি মাল্টিলিনযুক্ত মন্তব্য / ** / ব্যবহার করে ব্যবহার করতে পারেন। আপনাকে কেবল শেষগুলি ছাঁটাই করতে হবে এবং আপনার স্ট্রিং রয়েছে 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)
toString()
।
আমি অবাক হয়েছি আমি এটি দেখতে পাইনি, কারণ এটি যেখানেই পরীক্ষা করা হয়েছে এটি সর্বত্র কাজ করে এবং উদাহরণস্বরূপ টেমপ্লেটগুলির জন্য খুব দরকারী:
<script type="bogus" id="multi">
My
multiline
string
</script>
<script>
alert($('#multi').html());
</script>
এইচটিএমএল আছে এমন পরিবেশ সম্পর্কে কেউ কি জানেন তবে এটি কার্যকর হয় না?
আমি এটি একটি ডিভ আউটপুট করে, এটি লুকিয়ে রেখে এবং ডিআইডি আইডি কল করে যখন আমার প্রয়োজন হয় jQuery দ্বারা কল করেছি।
যেমন
<div id="UniqueID" style="display:none;">
Strings
On
Multiple
Lines
Here
</div>
তারপরে যখন আমার স্ট্রিংটি পাওয়া দরকার তখন আমি কেবল নীচের jQuery ব্যবহার করি:
$('#UniqueID').html();
যা আমার পাঠ্যকে একাধিক লাইনে ফিরিয়ে দেয়। যদি ফোন করি
alert($('#UniqueID').html());
আমি পাই:
display:none
সামগ্রী করে, সম্ভবত জাভাস্ক্রিপ্ট-স্টাইলযুক্ত ফ্রন্ট-এন্ডের জনপ্রিয়তার কারণে। (উদাহরণস্বরূপ, আড়াল / শো কার্যকারিতা সহ একটি FAQ পৃষ্ঠা)) আপনাকে অবশ্যই সতর্ক হওয়া দরকার কারণ গুগল বলেছে যে লুকানো সামগ্রীটি আপনার এসইও র্যাঙ্কিংকে কৃত্রিমভাবে উত্সর্গ করার জন্য ডিজাইন করা হয়েছে বলে মনে হচ্ছে তারা আপনাকে শাস্তি দিতে পারে।
এটি অর্জনের একাধিক উপায় রয়েছে
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>
`
স্ক্রিপ্ট ট্যাগ ব্যবহার:
<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>
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
জেএস-এ মন্তব্য ভুল করে লেখার চেয়ে অন্য কোনও সমস্যা আমার মনে নেই। স্পেস যেখানে কোনও সমস্যা নেই।
আমি এই বাক্য গঠন এবং অন্তর্ভুক্তি পছন্দ:
string = 'my long string...\n'
+ 'continue here\n'
+ 'and here.';
(তবে বাস্তবে মাল্টলাইন স্ট্রিং হিসাবে বিবেচনা করা যায় না)
এই লাইব্রেরিটি এটি সুন্দর করে তোলে:
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>
*/});
nodejs
ব্রাউজারে ব্যবহার করে এই সমর্থনটি অবশ্যই বেকারফুল হতে হবে।
Function.prototype.String()
।
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>
সংক্ষেপে, আমি এখানে ব্যবহারকারী জাভাস্ক্রিপ্ট প্রোগ্রামিং (অপেরা ১১.০১) তালিকাভুক্ত 2 টি পদ্ধতির চেষ্টা করেছি:
সুতরাং আমি অপেরা ব্যবহারকারী জেএস ব্যবহারকারীদের জন্য কাজের পদ্ধতির প্রস্তাব দিই। লেখক যা বলছিলেন তার বিপরীতে:
এটি ফায়ারফক্স বা অপেরাতে কাজ করে না; কেবলমাত্র আইই, ক্রোম এবং সাফারি।
এটি অপেরা ১১-এ কাজ করে user কমপক্ষে ব্যবহারকারী জেএস স্ক্রিপ্টগুলিতে। খুব খারাপ আমি স্বতন্ত্র উত্তরের বিষয়ে মন্তব্য করতে বা উত্তরকে উচ্চারণ করতে পারি না, আমি তা অবিলম্বে এটি করব। যদি সম্ভব হয় তবে উচ্চতর অধিকার সহ কেউ আমার জন্য এটি করুন।
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();
2015-এর জন্য আপডেট হয়েছে : এটি এখন ছয় বছর পরে: বেশিরভাগ লোকেরা মডিউল লোডার ব্যবহার করেন এবং প্রধান মডিউল সিস্টেমগুলির প্রত্যেকটিতে টেমপ্লেট লোড করার উপায় রয়েছে। এটি ইনলাইন নয়, তবে সবচেয়ে সাধারণ ধরণের মাল্টলাইন স্ট্রিংগুলি টেম্পলেটগুলি হয় এবং টেমপ্লেটগুলি সাধারণত জেএসের বাইরে রাখা উচিত any ।
ব্যবহার require.js 'টেক্সট' প্লাগ-ইন , একটি একাধিক লাইন টেমপ্লেট সঙ্গে template.html
var template = require('text!template.html')
ব্রাউজারফি পাঠ্য ফাইলগুলি লোড করতে একটি 'ব্রাফস' মডিউল ব্যবহার করে। এটি আসলে আপনার বান্ডিল এইচটিএমএলে আপনার টেম্পলেটটি তৈরি করবে।
var fs = require("fs");
var template = fs.readFileSync(template.html', 'utf8');
সহজ।
আপনি পলান নতুন লাইন ব্যবহার করতে ইচ্ছুক হন, তাহলে তারা ব্যবহার করা যেতে পারে চমত্কারভাবে । এটা একটা পৃষ্ঠা সীমানা সহ একটি নথি মত দেখায় ।
জাভাস্ক্রিপ্ট সমতুল্য:
var text = `
This
Is
A
Multiline
String
`;
এখানে স্পেসিফিকেশন । এই পৃষ্ঠার নীচে ব্রাউজার সমর্থন দেখুন । এখানেও কিছু উদাহরণ দেওয়া হল ।
এটি 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>
আপনি টাইপস্ক্রিপ্ট (জাভাস্ক্রিপ্ট সুপারসেট) ব্যবহার করতে পারেন , এটি মাল্টলাইন স্ট্রিং সমর্থন করে এবং ওভারহেড ছাড়াই খাঁটি জাভাস্ক্রিপ্টে স্থানান্তরিত করে:
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 এ টাইপস্ক্রিপ্ট চেষ্টা করতে পারেন
এটি করার ES6 উপায়টি হ'ল টেমপ্লেট লিটারাল ব্যবহার করে:
const str = `This
is
a
multiline text`;
console.log(str);
এখানে আরও রেফারেন্স
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
জাভাস্ক্রিপগুলিতে মাল্টলাইন স্ট্রিংগুলি তৈরি করার সহজ উপায় ব্যাকটিক্স ব্যবহার (``)। এটি আপনাকে একাধিক স্ট্রিং তৈরি করতে সহায়তা করে যার সাহায্যে আপনি ভেরিয়েবল সন্নিবেশ করতে পারেন${variableName}
।
let name = 'Willem';
let age = 26;
let multilineString = `
my name is: ${name}
my age is: ${age}
`;
console.log(multilineString);
ES6
// এes2015
অ্যারে-ভিত্তিক আমার সংস্করণটি স্ট্রিং কনকটের জন্য যোগ দিন:
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 টি আইটেমের বেশি বৃদ্ধি পাবে না - আমি এটিকে বৃহত্তর অ্যারেগুলির জন্য সূচকযুক্ত অ্যাডের পক্ষে এড়াতে চাই।
আপনি +=
আপনার স্ট্রিংটি একত্রীকরণ করতে ব্যবহার করতে পারেন , মনে হচ্ছে এমন কোনও উত্তর নেই, যা পাঠযোগ্য হবে এবং ঝরঝরেও ... এরকম কিছু
var hello = 'hello' +
'world' +
'blah';
হিসাবে লেখা যেতে পারে
var hello = 'hello';
hello += ' world';
hello += ' blah';
console.log(hello);
আরও মনে রাখবেন যে, প্রতিটি লাইনের শেষে ফরোয়ার্ড ব্যাকস্ল্যাশ ব্যবহার করে একাধিক লাইনের উপর স্ট্রিং প্রসারিত করার সময়, কোনও অতিরিক্ত অক্ষর (বেশিরভাগ স্পেস, ট্যাব এবং মন্তব্য ভুলক্রমে যোগ করা হয়) অপ্রত্যাশিত অক্ষর ত্রুটির কারণ ঘটবে, যা খুঁজে পেতে আমি এক ঘন্টা সময় নিয়েছিলাম আউট
var string = "line1\ // comment, space or tabs here raise error
line2";
ইন্টারনেটের ভালবাসার জন্য দয়া করে স্ট্রিং কনটেনটেশন ব্যবহার করুন এবং এর জন্য ES6 সমাধানগুলি ব্যবহার না করা পছন্দ করুন। ES6 পুরো বোর্ড জুড়ে সমর্থিত নয়, অনেকটা CSS3 এবং নির্দিষ্ট ব্রাউজারগুলির CSS3 আন্দোলনের সাথে খাপ খাইয়ে নিতে ধীর হয়ে আসছে। সাধারণ ওল 'জাভাস্ক্রিপ্ট ব্যবহার করুন, আপনার শেষ ব্যবহারকারীরা আপনাকে ধন্যবাদ দেবে।
উদাহরণ:
var str = "This world is neither flat nor round. "+
"Once was lost will be found";
আপনাকে কনকনেটেশন অপারেটর '+' ব্যবহার করতে হবে।
<!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>
আপনার ব্রাউজার ব্যবহার করে আউটপুট এর মত দেখতে পাবেন -
এই হয় একাধিক লাইন স্ট্রিং।
আমি মনে করি এই কাজটি 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>
উদাহরণস্বরূপ ব্লকটিতে উল্লিখিত কোনও চিত্র লোড করার চেষ্টা করে ।
কেবল অজ্ঞাতনামা উত্তরটি চেষ্টা করে দেখেছি এখানে একটি সামান্য কৌশল আছে, ব্যাকস্ল্যাশ পরে কোনও জায়গা থাকলে এটি কাজ করে না \
সুতরাং নিম্নলিখিত সমাধানটি কাজ করে না -
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);
আশা করি এটা সাহায্য করবে !!