1

動的に入力されるテキストの文字列があります。すべての文字列には、「タイプ」という共通の単語が 1 つあります。変数として格納された文字列を指定して、javascript を使用して「type」という単語を見つけ、その前にダイビングを配置し、文字列の後に終了 div を配置したいと思います。そのようです:

var string = "Here is some text that contains the word type and more text after";

最終結果を次のようにしたいと思います。

Here is some text that contains the word <div>type and more text after</div>

これについてどうすればよいですか?

現在のコードは次のとおりです。

var wod = $("#wod a").attr("title");
    var newwod = wod.replace("Copyright 2012, GB Blanchard - Learn Spanish: www.braser.com","");
    //get ride of example and everythign after it
    var finalwod = newwod.split("Example")[0];
    var newstring = finalwod.replace(/(type.+)/,"<div>$1</div>");


   $("#wod span").append(newstring);
4

2 に答える 2

4

使用するだけreplaceです:

string = string.replace(/(type.+)/,"<div>$1</div>");

単一のテキスト ノードよりも複雑な構造で構成される HTML を変更しようとしている場合、これは最善の方法ではないことに注意してください。ただし、この特定のケースでは有効です。

ジャックが指摘したように、ここでキャプチャ グループを使用する必要はありません$&

string = string.replace(/type.+/,"<div>$&</div>");
于 2012-11-29T23:06:47.673 に答える
0

これは本当にあなたが利用できる唯一の方法ですか?

Asadには正規表現の良い例があります、彼はまた、あなたのアプローチはベストプラクティスではないと指摘しています。

なぜあなたはただいくつかの構造を持つことができないのですか?

var returnedData = { "type": "div", "text": "I like best practice" };
//Might need error checking in future
var newElement = document.createElement(returnedData.type);
newElement.innerHTML = returnedData.text;
$("#wod span").append(newElement);
于 2012-11-30T09:01:23.517 に答える