Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将\n转换为HTML换行符_Javascript - Fatal编程技术网

Javascript 如何将\n转换为HTML换行符

Javascript 如何将\n转换为HTML换行符,javascript,Javascript,我使用这个插件来解析bbcode 但是它没有将\n转换为的功能 我尝试添加以下内容: replace(/\r?\n|\r/g, '<br>') 替换(/\r?\n |\r/g,) …但它不起作用 如何实现换行功能?事实上,在使用的PHP中,浏览器不会将\r\n视为真正的新行,而在Javascript中,您可以使用下面的函数作为nl2br()的等效项 function nl2br (str, is_xhtml) { var breakTag = (is_xhtml || typeo

我使用这个插件来解析bbcode

但是它没有将
\n
转换为

的功能

我尝试添加以下内容:

replace(/\r?\n|\r/g, '<br>')
替换(/\r?\n |\r/g,
…但它不起作用


如何实现换行功能?

事实上,在使用的PHP中,浏览器不会将
\r\n
视为真正的新行,而在Javascript中,您可以使用下面的函数作为
nl2br()
的等效项

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, '$1' + breakTag + '$2');}
函数nl2br(str,is_xhtml){ var breakTag=(is|xhtml | typeof is|xhtml==='undefined')?“
”:“
”; return(str+'').replace(/([^>\r\n]?)(\r\n |\n\r |\r |\n)/g,'$1'+breakTag+'$2');)
如果您这样做是为了在html中显示新行和回车符,那么您不需要显式地这样做。您可以在css中通过设置空白属性pre-line值来实现这一点

@Model.CommentText

上述答案帮助我解决了问题,但我进一步挖掘,发现了一些有关
空白
属性的附加信息。我希望它能帮助像我这样的人:

什么是
空白
属性:

空白是一种CSS属性,有助于控制如何处理元素文本中的空白和换行符。它可以采用以下值:正常、nowrap、pre、pre行、pre wrap

这对我很有效

const regex = /\\n|\\r\\n|\\n\\r|\\r/g;
string.replace(regex, '<br>');
const regex=/\\n |\\r\\n |\\n\\r |\\r/g;
替换(正则表达式,
);
请在此处发布JSFIDLE链接
str=str.replace(/\n/g,
可能重复的
str.replace(/\r\n |\n |\r/gm,
此处$1和$2的功能可能重复?如果您指定了正确的css样式,浏览器会将其视为新行。@永远:
$1
$2
指的是regexp中的第一个和第二个组(组是
()
中的某些内容)。因此,代码将保留字符串的原始部分,只需在新行之前插入

标记。指定
的参数是\u xhtml
?编辑:尽管它说IE中不支持它,但在IE8+11中它似乎可以正常工作:pre-line还将折叠空格序列。如果要保留空白,请尝试预换行。还有其他选择:
const regex = /\\n|\\r\\n|\\n\\r|\\r/g;
string.replace(regex, '<br>');