Javascript 如何将\n转换为HTML换行符
我使用这个插件来解析bbcode 但是它没有将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
\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>');