0

テキストエリアから選択した文字を文字列に置き換えたいです。これを行うには、次の JavaScript コードを書きました

            var old_tag = "[";
         var tag= " <xsl:value-of select = ";
      var endtag= " />";
var txt='';

if(document.selection)
{
 txt = document.selection.createRange().text
 document.selection.createRange().text = txt.replace(/\[/g, tag);
 document.selection.createRange().text = txt.replace(/\]/g, endtag);

}

しかし、このコードは、ある行の 1 つの文字を置き換え、別の行の別の文字を置き換えます。2 行の置換コードの場合、4 行が表示されます。

このコードを改善して、1 行で作業できるようにしてください。

ありがとう

4

1 に答える 1

1

あなたはおそらく次のようなことをしたいと思うでしょう:

txt = document.selection.createRange().text;
txt = txt.replace(/\[/g, tag).replace(/\]/g, endtag);
document.selection.createRange().text = txt;

replace副作用はありません。新しい文字列を返すため、変更を維持するにはそれを割り当てる必要があります。

于 2010-06-02T11:53:18.073 に答える