2

私はそのような文字列を持っています:

私は長すぎず短すぎない紐です

文字列内の単語 'not' を見てみましょう: 位置番号 13 から始まり、位置番号 16 で終わります。

JQuery を使用して、位置 13 と位置 16 の間の単語を次のように置き換える方法があります。

<b>not</b>

コンテンツではなく、置き換えたい文字列の位置だけを知っています。

4

3 に答える 3

4

You can mostly use good old-fashioned JavaScript to do this, but you can use jQuery for the DOM manipulation (though you don't have to).

http://jsfiddle.net/hQUhX/

contents:

function replacePiece(str, start, end) {
   var component = str.substr(start, end - start);
   var newstr = str.substr(0,13) + "<b>" + component + "</b>"
      + str.substr(end);
   return newstr;
}

​$("#Str").html(replacePiece($("#Str").text(), 13, 16));
于 2012-06-06T14:07:58.450 に答える
1

この回答は、開始位置しか知らない場合の交換用です

私がやったのは、単語の終了位置ではなく、開始位置だけを知っていることに基づいて答えることです。

これが行うことは、既知の開始位置から文字列を取得し、スペースで分割し、最初の単語を で囲み、<b>それを文字列の間に追加して出力します。

JSFiddle の例 http://jsfiddle.net/Jc829/4/

最初から注意を怠って申し訳ありません。

また、これには jQuery は必要ありません。

于 2012-06-06T14:02:05.543 に答える
0

Explosion Pillsの回答を受け入れましたが、これはこれを行うためのより洗練された方法だと思います(リンクについてはMatthew Richesに感謝します)

String.prototype.replacePiece = function(replace_with, start, end) {
    return this.substring(0, start) + replace_with + this.substring(end, this.length)
}

var str = "Helloiworld";

var replace_with = "<b>i</b>";

alert(str.replacePiece(replace_with, 5, 6));​​

http://jsfiddle.net/paglia_s/QTMJG/

于 2012-06-06T14:31:39.713 に答える