JQuery ব্যবহার করে সর্বাধিক 10 টি অক্ষর প্রদর্শন করতে আমি কীভাবে একটি দীর্ঘ পাঠ্য স্ট্রিং (ক্যোরিস্ট্রিংয়ের মতো) পেতে পারি?
দুঃখিত বন্ধুরা আমি জাভাস্ক্রিপ্ট এবং জ্যাকুয়েরিতে একজন শিক্ষানবিশ: এস যে
কোনও সাহায্যের প্রশংসা করা হবে।
JQuery ব্যবহার করে সর্বাধিক 10 টি অক্ষর প্রদর্শন করতে আমি কীভাবে একটি দীর্ঘ পাঠ্য স্ট্রিং (ক্যোরিস্ট্রিংয়ের মতো) পেতে পারি?
দুঃখিত বন্ধুরা আমি জাভাস্ক্রিপ্ট এবং জ্যাকুয়েরিতে একজন শিক্ষানবিশ: এস যে
কোনও সাহায্যের প্রশংসা করা হবে।
উত্তর:
যদি আমি সঠিকভাবে বুঝতে পারি তবে আপনি একটি স্ট্রিং 10 টি অক্ষরে সীমাবদ্ধ করতে চান?
var str = 'Some very long string';
if(str.length > 10) str = str.substring(0,10);
এরকম কিছু?
এবং এখানে একটি jQuery উদাহরণ:
এইচটিএমএল পাঠ্য ক্ষেত্র:
<input type="text" id="myTextfield" />
এর আকার সীমাবদ্ধ করতে jQuery কোড:
var elem = $("#myTextfield");
if(elem) elem.val(elem.val().substr(0,10));
উদাহরণস্বরূপ, আপনি টাইপ করার সময় উপরে 10 টির বেশি অক্ষর প্রবেশ করতে বাধা দেওয়ার জন্য আপনি উপরের jQuery কোডটি ব্যবহার করতে পারেন; নিম্নলিখিত কোড স্নিপেট ঠিক এটি করে:
$(document).ready(function() {
var elem = $("#myTextfield");
if (elem) {
elem.keydown(function() {
if (elem.val().length > 10)
elem.val(elem.val().substr(0, 10));
});
}
});
আপডেট : উপরের কোড স্নিপেট কেবল উদাহরণ ব্যবহারের জন্য দেখানো হয়েছিল।
নিম্নলিখিত কোড স্নিপেট আপনাকে ডিআইভি উপাদান দিয়ে ইস্যু পরিচালনা করবে:
$(document).ready(function() {
var elem = $(".tasks-overflow");
if(elem){
if (elem.text().length > 10)
elem.text(elem.text().substr(0,10))
}
});
দয়া করে মনে রাখবেন যে আমি এই ক্ষেত্রে text
পরিবর্তে ব্যবহার করছি val
, যেহেতু val
পদ্ধতিটি ডিআইভি উপাদানটির সাথে কাজ করছে বলে মনে হচ্ছে না।
val
পদ্ধতিটি রয়েছে যা ডিআইভি উপাদানগুলির জন্য কাজ করে বলে মনে হয় না। আমি আমার উত্তরটি আবার আপডেট করেছি এবং এখন text
পাঠ্যটি পরিবর্তনের জন্য পদ্ধতিটি ব্যবহার করা হয়েছে, যা পুরোপুরি কাজ করা উচিত (এটি স্থানীয়ভাবে পরীক্ষা করা হয়েছে)। আপনি কি আমার আপডেট কোড সহ এটি আবার পরীক্ষা করতে পারেন এবং আমাকে জানান?
নিজস্ব উত্তর তৈরি করা, কারণ কেউ বিবেচনা করেনি যে বিভাজনটি ঘটবে না (সংক্ষিপ্ত পাঠ্য)। সেক্ষেত্রে আমরা প্রত্যয় হিসাবে '...' যুক্ত করতে চাই না।
টার্নারি অপারেটর এটিকে বাছাই করবে:
var text = "blahalhahkanhklanlkanhlanlanhak";
var count = 35;
var result = text.slice(0, count) + (text.length > count ? "..." : "");
কাজ করতে বন্ধ করা যেতে পারে:
function fn(text, count){
return text.slice(0, count) + (text.length > count ? "..." : "");
}
console.log(fn("aognaglkanglnagln", 10));
এবং সহায়ক শ্রেণিতে প্রসারিত করুন যাতে আপনি বিন্দুগুলি চান কিনা তা চয়ন করতে পারেন:
function fn(text, count, insertDots){
return text.slice(0, count) + (((text.length > count) && insertDots) ? "..." : "");
}
console.log(fn("aognaglkanglnagln", 10, true));
console.log(fn("aognaglkanglnagln", 10, false));
var example = "I am too long string";
var result;
// Slice is JS function
result = example.slice(0, 10)+'...'; //if you need dots after the string you can add
ফলাফলের ভেরিয়েবলটিতে "আমি খুব এল ..." থাকে
এইচটিএমএল
<p id='longText'>Some very very very very very very very very very very very long string</p>
জাভাস্ক্রিপ্ট (ডক প্রস্তুত)
var longText = $('#longText');
longText.text(longText.text().substr(0, 10));
পাঠ্যে যদি আপনার একাধিক শব্দ থাকে এবং প্রতিটি সর্বাধিক 10 টি অক্ষরে সীমাবদ্ধ রাখতে চান তবে আপনি এটি করতে পারেন:
var longText = $('#longText');
var text = longText.text();
var regex = /\w{11}\w*/, match;
while(match = regex.exec(text)) {
text = text.replace(match[0], match[0].substr(0, 10));
}
longText.text(text);
আপনি সম্ভবত যা চান তা এটি আমার কাছে আরও বেশি দেখায়।
$(document).ready(function(){
var stringWithShorterURLs = getReplacementString($(".tasks-overflow").text());
function getReplacementString(str){
return str.replace(/(https?\:\/\/[^\s]*)/gi,function(match){
return match.substring(0,10) + "..."
});
}});
আপনি এটি প্রথম লাইনে আপনার এইচটিএমএল উপাদানটি দেন এবং তারপরে এটি সম্পূর্ণ পাঠ্য লাগে, 10 টি অক্ষরের দীর্ঘ সংস্করণ সহ ইউআরএলগুলি প্রতিস্থাপন করে এবং আপনাকে তা ফিরিয়ে দেয়। ইউআরএল অক্ষরগুলির মধ্যে কেবল 3 টির জন্য এটি কিছুটা অদ্ভুত বলে মনে হয় তাই সম্ভব হলে আমি এটির প্রস্তাব দিই।
$(document).ready(function(){
var stringWithShorterURLs = getReplacementString($(".tasks-overflow p").text());
function getReplacementString(str){
return str.replace(/https?\:\/\/([^\s]*)/gi,function(match){
return match.substring(0,10) + "..."
});
}});
যা http: // বা https: // কে ছুঁড়ে ফেলবে এবং www.example.com এর 10 টি চ্যাটার পর্যন্ত মুদ্রণ করবে
যদিও এটি স্ট্রিংটি ঠিক 10 টি অক্ষরে সীমাবদ্ধ করবে না, তবে ব্রাউজারটি সিএসএসের সাহায্যে আপনার জন্য কাজটি করতে দেয় না কেন:
.no-overflow {
white-space: no-wrap;
text-overflow: ellipsis;
overflow: hidden;
}
এবং তারপরে যে টেবিল সেলে স্ট্রিং রয়েছে তার জন্য উপরের শ্রেণিটি যুক্ত করুন এবং সর্বাধিক অনুমোদিত প্রস্থ নির্ধারণ করুন। স্ট্রিংয়ের দৈর্ঘ্য পরিমাপের উপর ভিত্তি করে ফলাফলের চেয়ে ভাল কিছু করা উচিত।
@ jolly.exe
দুর্দান্ত উদাহরণ জলি। আমি আপনার সংস্করণ আপডেট করেছি যা শব্দের সংখ্যার বিপরীতে অক্ষরের দৈর্ঘ্যকে সীমাবদ্ধ করে। আমি আসল আসল অভ্যন্তরীণ এইচটিএমএলে শিরোনামটি সেট করাও যুক্ত করেছি, যাতে ব্যবহারকারীরা ঘোরাফেরা করতে পারে এবং কী কাটা হয়েছে তা দেখতে পায়।
এইচটিএমএল
<div id="stuff">a reallly really really long titleasdfasdfasdfasdfasdfasdfasdfadsf</div>
জেএস
function cutString(id){
var text = document.getElementById(id).innerHTML;
var charsToCutTo = 30;
if(text.length>charsToCutTo){
var strShort = "";
for(i = 0; i < charsToCutTo; i++){
strShort += text[i];
}
document.getElementById(id).title = "text";
document.getElementById(id).innerHTML = strShort + "...";
}
};
cutString('stuff');
এটা চেষ্টা কর :)
var mystring = "How do I get a long text string";
mystring = mystring.substring(0,10);
alert(mystring);
এটি দেখানদীর্ঘ পাঠ্য দীর্ঘ পাঠ্য দীর্ঘ পাঠ্য দীর্ঘ পাঠ্য দীর্ঘ পাঠ্য দীর্ঘ পাঠ্য দীর্ঘ পাঠ দীর্ঘ দীর্ঘ পাঠ দীর্ঘ দীর্ঘ পাঠ দীর্ঘ দীর্ঘ পাঠ দীর্ঘ দীর্ঘ পাঠ দীর্ঘ দীর্ঘ পাঠ দীর্ঘ দীর্ঘ পাঠ দীর্ঘ দীর্ঘ পাঠ দীর্ঘ দীর্ঘ পাঠ দীর্ঘ দীর্ঘ পাঠ দীর্ঘ দীর্ঘ পাঠ দীর্ঘ পাঠ্য দীর্ঘ পাঠ্য দীর্ঘ পাঠ্য দীর্ঘ পাঠ্য দীর্ঘ পাঠ দীর্ঘ দীর্ঘ পাঠ দীর্ঘ দীর্ঘ পাঠ দীর্ঘ দীর্ঘ পাঠ দীর্ঘ দীর্ঘ পাঠ্য দীর্ঘ পাঠ্য দীর্ঘ পাঠ্য দীর্ঘ পাঠ্য দীর্ঘ পাঠ্য "
প্রতি
দীর্ঘ পাঠ্য দীর্ঘ পাঠ্য ...
function cutString(text){
var wordsToCut = 5;
var wordsArray = text.split(" ");
if(wordsArray.length>wordsToCut){
var strShort = "";
for(i = 0; i < wordsToCut; i++){
strShort += wordsArray[i] + " ";
}
return strShort+"...";
}else{
return text;
}
};