-2

<br/>私が持っているテキストの各ブロックの半分に改行を追加したいと思います。つまり、「Google の科学者が機械学習の証拠を見つけた」というようなツイートがあるとしたら、次のようになります。

"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 に答える