-2

我想<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>
4

4 回答 4

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/>在中间单词之后插入 a 并再次加入......

(感谢@Felix Kling的评论建议)

尽管这有一些问题 - 它没有把它放在<br/>你想要的地方......并且对于长句来说不是最有效的

于 2012-06-26T12:11:58.413 回答
2

我建议计算字符串中的字符数量,找到最接近 50% 点的空间并在那里拆分字符串。然后只需在插入中断的情况下渲染字符串。

于 2012-06-26T12:08:17.887 回答
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");
}
于 2012-06-26T12:09:46.010 回答
0

当容器小于文本宽度时,此插件会自动将您的文本行很好地分解为 2:

https://github.com/SumoSoft/PrettyBreak

于 2016-09-08T18:55:59.003 回答