只显示一个长串的10个字符?
如何使用JQuery获取长文本string(如查询string)最多显示10个字符?
对不起,我是JavaScript和JQuery:S的新手
任何帮助将不胜感激。
如果我理解正确,你想限制一个string为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));
作为一个例子,你可以使用上面的jQuery代码来限制用户在input时input超过10个字符; 下面的代码片段完全是这样的:
$(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元素。
HTML
<p id='longText'>Some very very very very very very very very very very very long string</p>
JavaScript (关于doc准备)
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);
当您将string截断为十个字符时,还应该添加实际的html省略号实体: …
,而不是三个时期。
这看起来更像我想你可能想要的。
$(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个字符长的版本replaceurls,并返回给你。 这似乎有点奇怪,只有3个url字符,所以我会build议,如果可能的话。
$(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个字符
@ jolly.exe
好例子快活。 我更新了限制字符长度的版本,而不是字数。 我还添加了将标题设置为真正的原始innerHTML,以便用户可以hover并查看截断的内容。
HTML
<div id="stuff">a reallly really really long titleasdfasdfasdfasdfasdfasdfasdfadsf</div>
JS
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');
创build自己的答案,因为没有人认为拆分可能不会发生(短文本)。 在这种情况下,我们不想添加“…”作为后缀。
三元运算符将对此进行sorting:
var text = "blahalhahkanhklanlkanhlanlanhak"; var count = 35; var result = text.slice(0, count) + (text.length > count ? "..." : "");
可以closuresfunction:
function fn(text, count){ return text.slice(0, count) + (text.length > count ? "..." : ""); } console.log(fn("aognaglkanglnagln", 10));
并扩大到助手类,所以你甚至可以select,如果你想要点或不:
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));
显示此 “长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本长文本“
至
长文本长文本长…
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; } };
('very long string'.slice(0,10))+'...' // "very long ..."
尝试这个 :)
var mystring = "How do I get a long text string"; mystring = mystring.substring(0,10);