我想在每个文本块的一半添加换行符<br/>
。
这意味着,如果我有这样的推文:“谷歌科学家找到机器学习的证据”就像这样:
"Google scientists find evidence < br/> of machine learning"
如何计算字符串中的单词数,将此数除以2并在jQuery中添加中断?
由于
一个例子:
<span class="tweet-text">Nara Wants To Build A Better Recommendation Platform, Starts With Restaurants And A $4 Million Series...</span>
需要成为
<span class="tweet-text">Nara Wants To Build A Better Recommendation < br/> Platform, Starts With Restaurants And A $4 Million Series...</span>
答案 0 :(得分:4)
试试这个:
var words = "Google scientists find evidence of machine learning";
var arrofwords = words.split(" ");
var middle = arrofwords.length / 2;
arrofwords.splice(middle,0,"<br/>");
var output = arrofwords.join(" ");
它使用空格分割句子,在中间词之后插入<br/>
并再次加入....
(感谢@Felix Kling对评论中的建议)
虽然这有一些问题 - 它并没有把<br/>
放在你想要的地方......并且对于长句来说效率不高
答案 1 :(得分:2)
我建议计算字符串中的字符数,找到最接近50%点的空格并将字符串分开。然后只需插入一个中断渲染字符串。
答案 2 :(得分:0)
function wordwrap( str, int_width, str_break, cut ) { // Wraps a string to a given number of characters
//
// + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
// + improved by: Nick Callen
var i, j, s, r = str.split("\n");
if(int_width > 0) for(i in r){
for(s = r[i], r[i] = ""; s.length > int_width;
j = cut ? int_width : (j = s.substr(0, int_width).match(/\S*$/)).input.length - j[0].length || int_width,
r[i] += s.substr(0, j) + ((s = s.substr(j)).length ? str_break : "")
);
r[i] += s;
}
return r.join("\n");
}
答案 3 :(得分:0)
当容器小于文本宽度时,此插件会在2中自动破坏您的文本行: