मुझे JQuery का उपयोग करके अधिकतम 10 वर्णों को प्रदर्शित करने के लिए एक लंबी पाठ स्ट्रिंग (एक querystring की तरह) कैसे मिलती है?
क्षमा करें दोस्तों मैं जावास्क्रिप्ट और JQuery में नौसिखिया हूँ: एस
किसी भी मदद की बहुत सराहना की जाएगी।
मुझे JQuery का उपयोग करके अधिकतम 10 वर्णों को प्रदर्शित करने के लिए एक लंबी पाठ स्ट्रिंग (एक querystring की तरह) कैसे मिलती है?
क्षमा करें दोस्तों मैं जावास्क्रिप्ट और JQuery में नौसिखिया हूँ: एस
किसी भी मदद की बहुत सराहना की जाएगी।
जवाबों:
अगर मैं सही ढंग से समझूं तो आप एक स्ट्रिंग को 10 अक्षरों तक सीमित करना चाहते हैं?
var str = 'Some very long string';
if(str.length > 10) str = str.substring(0,10);
ऐसा कुछ?
और यहाँ एक jQuery उदाहरण है:
HTML पाठ क्षेत्र:
<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));
});
}
});
अपडेट करें : उपरोक्त कोड स्निपेट का उपयोग केवल एक उदाहरण उपयोग दिखाने के लिए किया गया था।
निम्नलिखित कोड स्निपेट आपको DIV तत्व के साथ जारी करेगा।
$(document).ready(function() {
var elem = $(".tasks-overflow");
if(elem){
if (elem.text().length > 10)
elem.text(elem.text().substr(0,10))
}
});
कृपया ध्यान दें कि मैं उपयोग कर रहा हूँ text
के बजाय val
इस मामले में, के बाद से val
विधि DIV तत्व के साथ काम करने के लिए प्रतीत नहीं होता।
val
विधि थी, जो DIV तत्वों के लिए काम नहीं करती है। मैंने अपना उत्तर फिर से अपडेट किया है, और अब 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
परिणाम चर में "मैं बहुत एल हूँ ..."
('very long string'.slice(0,10))+'...'
// "very long ..."
एचटीएमएल
<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) + "..."
});
}});
आप इसे अपना html एलिमेंट पहली लाइन में देते हैं और फिर यह पूरे टेक्स्ट को ले लेता है, यूआरएल को 10 कैरेक्टर लंबे वर्जन के साथ बदल देता है और इसे आपको लौटा देता है। यह थोड़ा अजीब लगता है केवल 3 ही url अक्षर हैं इसलिए मैं यह सलाह दूंगा कि यदि संभव हो तो।
$(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
अच्छा उदाहरण जॉली। मैंने आपके संस्करण को अपडेट किया जो शब्दों की संख्या के विपरीत चरित्र की लंबाई को सीमित करता है। मैंने शीर्षक को वास्तविक मूल इनर HTML में भी जोड़ा है, ताकि उपयोगकर्ता हॉवर कर सकें और देख सकें कि क्या छोटा है।
एचटीएमएल
<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;
}
};