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 回答