我正在尝试使用多行文本框将文本插入到显示为html的表中。我想用javascript取文本框内的文本并找到用户按下的位置并在该位置放置“<br/>
”,这样当显示文本时它将显示换行符。关于我如何做到这一点的任何想法?
我试过这样的事情,但是没有用。
var text = document.getElementById("announcementid").value;
var newtext = text.replace("\n", "<br/>");
text = newtext;
答案 0 :(得分:3)
newtext
变量最终成为announcementid
元素中原始字符串的副本。因此,您需要重新 - 设置原始文档元素上的value
属性:
var text = document.getElementById("announcementid").value;
var newtext = text.replace(/\n/g, "<br />");
document.getElementById("announcementid").value = newtext;
另外,正如Konstantin指出的那样,Javascript中的replace()
函数只会替换第一个实例,除非您传入全局正则表达式。
答案 1 :(得分:0)
Text是一个原语,因此不会替换该值。使用正则表达式进行全局替换,而不是仅替换第一个实例:
var text = document.getElementById("announcementid").value;
var newtext = text.replace(/\n/g, "<br />");
document.getElementById("announcementid").value = newtext;