function insertTextWithLineBreaks(text, targetElement) {
var textWithNormalizedLineBreaks = text.replace('\r\n', '\n');
var textParts = textWithNormalizedLineBreaks.split('\n');
for (var i = 0; i < textParts.length; i++) {
targetElement.appendChild(document.createTextNode(textParts[i]));
if (i < textParts.length - 1) {
targetElement.appendChild(document.createElement('br'));
}
}
}
10 回答
无论系统如何:
如果你从PHP发送变量,你可以在发送之前用它来获取它:
没有正则表达式:
当值来自TextBox时,这对我有用:
如果接受的答案不适合您,那么您可以尝试 .
它对我有用 .
这适用于来自textarea的输入
如果你关心的只是显示换行符,你可以用CSS做到这一点 .
HTML
CSS
jsfiddle https://jsfiddle.net/yk1angkz/125/
Note :注意代码格式和缩进,因为
white-space: pre-wrap
将显示 all 空格(除了文本后面的最后一个换行符,请参见小提琴) .这会将所有返回值转换为HTML
如果你想知道什么?:意味着 . 它被称为非捕获组 . 这意味着括号内的正则表达式组不会保存在内存中以便稍后引用 . 您可以查看这些线程以获取更多信息:
https://stackoverflow.com/a/11530881/5042169 https://stackoverflow.com/a/36524555/5042169
对于那些只想允许最大值的人2
<br>
连续,你可以使用这个:第一行:搜索
\n
或\r\n
,其中至少有两个是连续的,例如\n\n\n\n
. 然后用2br
替换它第二行:搜索所有单个
\r\n
或\n
并将其替换为<br>
编码文本的其余部分以防止可能的脚本注入攻击也很重要