如何用<br />标签replacestring中的所有换行符?
我怎样才能从Javascript中读取换行符,并用br
标签replace所有换行符?
例:
从PHP传递的variables如下所示:
"This is man. Man like dog. Man like to drink. Man is the king."
我想我的结果看起来像这样的Javascript转换后:
"This is man<br /><br />Man like dog.<br />Man like to drink.<br /><br />Man is the king."
str = str.replace(/(?:\r\n|\r|\n)/g, '<br />');
如果你的担心只是显示换行符,你可以用CSS做到这一点。
HTML
<div class="white-space-pre">Some test with linebreaks</div>
CSS
.white-space-pre { white-space: pre-wrap; }
jsfiddle https://jsfiddle.net/yk1angkz/125/
注意 :注意代码的格式和缩进,因为white-space: pre-wrap
会显示所有的空格(文本之后的最后一个换行符除外,参见小提琴)。
没有正则expression式:
str = str.split("\n").join("<br />");
这适用于来自textarea的input
str.replace(new RegExp('\r?\n','g'), '<br />');
如果接受的答案不适合你,那么你可以试试。
str.replace(new RegExp('\n','g'), '<br />')
它为我工作。
对其余的文本进行编码以防止可能的脚本注入攻击也很重要
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')); } } }
不pipe系统如何:
my_multiline_text.replace(/$/mg,'<br>');
对于那些只想允许max 2在连续,你可以使用这个:
let text = text.replace(/(\r?\n){2,}/g, '<br><br>'); text = text.replace(/(\r?\n)/g, '<br>');
第一行:search\n
或\r\n
,其中至less有两个连在一起,例如\n\n\n\n
。 然后用2 br
replace它
第二行:search所有单个\r\n
或\n
并将其replace为<br>
当值来自TextBox时,这对我有用:
string.replace(/\n|\r\n|\r/g, '<br/>');
如果你从PHP发送variables,你可以在发送之前用它获取它:
$string=nl2br($string);