1

複数行のテキストボックスを使用して、html として表示されるテーブルにテキストを挿入しようとしています。javascript を使用して、テキストボックス内のテキストを取得し、ユーザーが Enter キーを押した場所を見つけて、<br/>その位置に " " を配置して、テキストが表示されたときに改行が表示されるようにします。どうすればこれを行うことができるかについてのアイデアはありますか?

このようなことを試しましたが、うまくいきませんでした。

var text = document.getElementById("announcementid").value;


            var newtext = text.replace("\n", "<br/>");

            text = newtext;
4

2 に答える 2

3

newtext変数は、要素の元の文字列のコピーになりますannouncementid。したがって、元のドキュメント要素のプロパティを設定する必要があります。value

  var text = document.getElementById("announcementid").value;
  var newtext = text.replace(/\n/g, "<br />");
  document.getElementById("announcementid").value = newtext; 

また、Konstantin が指摘したようreplace()に、グローバルな正規表現を渡さない限り、Javascript の関数は最初のインスタンスを置き換えるだけです。

フィドルの例

于 2012-11-07T18:44:55.333 に答える
0

テキストはプリミティブであるため、値を置き換えることはありません。最初のインスタンスだけを置き換えるのではなく、正規表現を使用してグローバルに置き換えます。

var text = document.getElementById("announcementid").value;
var newtext = text.replace(/\n/g, "<br />");
document.getElementById("announcementid").value = newtext;
于 2012-11-07T18:44:27.367 に答える