如何格式化 HTML <textarea> 中的文本?

How can I format text in an HTML <textarea>?

我的页面上有一个 <textarea>,当我点击一个按钮时,textarea 中的文本值被分配给 .innerHTML 我页面上的一个段落。

现在假设我在 textarea 中输入了这样的内容:

Hey
how's
it
going
?

段落看起来像这样

Hey how's it going ?

基本上,它不会在每行末尾有
标记。有没有一种方法可以强制 JavaScript 函数在我的文本区域每一行的末尾插入
标签,或者有​​更简单的方法来做到这一点?

JavaScript代码:

document.getElementById("sendMsgBtn").onclick = function(){
    var element = document.createElement("p");
    element.style.borderBottom = "1px solid black";
    var content = document.createTextNode(document.getElementById("currentMsg").value);
    content = content.replace(/\n/g, "<br>");
    element.appendChild(content);
    document.body.appendChild(element);
    document.getElementById("currentMsg").value = "";
}

当您将元素从文本区域复制到段落标签时,将所有换行符替换为 <br> 标签:

var input = document.getElementById("myTextarea").innerHTML; // get textarea contents
input = input.replace( /\n/g, "<br>"); // replace line breaks with <br> tags
document.getElementById("myParagraph").innerHTML = input; // place html-ified input into your <p>

如果您使用的是 jQuery,试试这个:

function nl2br (str, is_xhtml) {
    var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>';
    return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '' + breakTag + '');
}

然后 nl2br(yourVariableWithContent); 可用于将换行符(return 按钮生成的换行符)更改为

您不需要换行符。相信我。

只需设置:

white-space: pre-wrap;

这 CSS 将使空格变得有意义,并在键入时保留它。